我有一个带有 3 个视图控制器的导航控制器,我称之为模式。
当我到达最后一个 viewController 时,我想按下一个 doneButton,它将关闭模式 navigationController 并对presentingViewController 执行一些操作,因为presentingViewController 可以是3 种不同的类型。
所以在我最后一个 viewController 的 doneAction 中,我想测试什么是presentingViewController,但是在询问presentingViewController 时我得到(null)。
这是一些带有 NSLogs 的测试代码,它们显示了我的问题:
- (IBAction)doneAction:(id)sender {
[self dismissViewControllerAnimated:YES completion:^(void){
NSLog(@"nav VC count : %u", self.navigationController.viewControllers.count);
NSLog(@"nav nav VC count : %u", self.navigationController.navigationController.viewControllers.count);
NSLog(@"presenting VC: %@", NSStringFromClass(self.presentingViewController.class));
NSLog(@"nav VC: %@", NSStringFromClass(self.navigationController.class));
NSLog(@"nav presenting VC: %@", NSStringFromClass(self.navigationController.presentingViewController.class));
}
和输出:
2013-09-25 14:44:40.819 Twinkler[10636:a0b] nav VC count : 3
2013-09-25 14:44:40.819 Twinkler[10636:a0b] nav nav VC count : 0
2013-09-25 14:44:40.819 Twinkler[10636:a0b] presenting VC: (null)
2013-09-25 14:44:40.820 Twinkler[10636:a0b] nav VC: UINavigationController
2013-09-25 14:44:40.820 Twinkler[10636:a0b] nav presenting VC: (null)
有谁知道为什么它不可用?
提前致谢。