在我的视图控制器代码中,我该如何区分:
这两个presentingViewController和isMovingToParentViewController是YES在这两种情况下,所以都不是很有益的。
presentingViewController
isMovingToParentViewController
YES
使事情变得复杂的是,我的父视图控制器有时是模态的,将要检查的视图控制器推到该模态上。
事实证明,我的问题是,我嵌入我HtmlViewController的UINavigationController,然后呈现。这就是为什么我自己的尝试和下面的好答案无法正常工作的原因。
HtmlViewController
UINavigationController
HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary]; UINavigationController* modalViewController; modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:modalViewController animated:YES completion:nil];
我想我最好告诉我的视图控制器何时是模态的,而不是试图确定。
拿一粒盐,没有测试。
- (BOOL)isModal { if([self presentingViewController]) return YES; if([[[self navigationController] presentingViewController] presentedViewController] == [self navigationController]) return YES; if([[[self tabBarController] presentingViewController] isKindOfClass:[UITabBarController class]]) return YES; return NO; }