【发布时间】:2016-03-27 01:32:57
【问题描述】:
我的项目使用SWRevealViewController 和标签栏控制器。我使用下面的代码来获取可见的视图控制器:
- (UIViewController*) topMostController
{
return [self topViewControllerWithRootViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
}
- (UIViewController*)topViewControllerWithRootViewController:(UIViewController*)rootViewController {
if ([rootViewController isKindOfClass:[UITabBarController class]]) {
UITabBarController* tabBarController = (UITabBarController*)rootViewController;
return [self topViewControllerWithRootViewController:tabBarController.selectedViewController];
} else if ([rootViewController isKindOfClass:[UINavigationController class]]) {
UINavigationController* navigationController = (UINavigationController*)rootViewController;
return [self topViewControllerWithRootViewController:navigationController.visibleViewController];
} else if (rootViewController.presentedViewController) {
UIViewController* presentedViewController = rootViewController.presentedViewController;
return [self topViewControllerWithRootViewController:presentedViewController];
} else {
return rootViewController;
}
}
但是当我站在MessageViewController 或其他任何位置时,我总是以SWRevealViewController 为顶部。请纠正我在这种情况下获取可见视图控制器的正确方法。
【问题讨论】:
-
你有没有找到解决方案?
-
@Hemang: 是的,但是现在很忙,想发布我的答案来帮助另一个面临同样问题的人。
-
如果您发布对每个人都有帮助的答案,那就太好了。
标签: ios swrevealviewcontroller