【发布时间】:2010-12-04 21:32:29
【问题描述】:
我的应用程序的主窗口包含一个基于 xib 的 UITabBarController(在 Interface Builder 中完全配置),它也可以模态显示(很像 Music.app “将歌曲添加到播放列表”模态视图)。 UITabBarController 包含许多 UINavigationControllers,这些 UINavigationControllers 又包含子类 UITableViewControllers。这就是我当前检测子类 UITableViewController 是否正在模态 UITabBarController 中呈现的方式:
- (void)viewDidLoad {
[super viewDidLoad];
self.isModal = NO;
UIViewController *child = self;
UIViewController *parent = self.parentViewController;
while (parent) {
if (parent.modalViewController && parent.modalViewController == child) {
self.isModal = YES;
break;
}
child = parent;
parent = parent.parentViewController;
}
if (self.isModal) {
// modal additions, eg. Done button, navigationItem.prompt
}
else {
// normal additions, eg. Now Playing button
}
}
有没有办法做到这一点,不涉及在 parentViewController 树或子类化所有中间视图控制器以在初始化时传递 isModal 状态?
【问题讨论】:
标签: objective-c ios