我正在使用下面的代码来查找最顶级的ViewController。如果显示警报,则上面的代码将提供UIAlertController。如何在UIAlertController下获取顶视图控制器?
+(UIViewController*)topMostViewController:(UIViewController*)rootViewController
{
if ([rootViewController isKindOfClass:[UITabBarController class]])
{
UITabBarController* tabBarController = (UITabBarController*)rootViewController;
return [self topMostViewController:tabBarController.selectedViewController];
}
else if ([rootViewController isKindOfClass:[UINavigationController class]])
{
UINavigationController* navigationController = (UINavigationController*)rootViewController;
return [self topMostViewController:navigationController.visibleViewController];
}
else
{
return rootViewController;
}
}
有什么主意吗?
答案 0 :(得分:0)
更新了答案。由于要查找可见的最顶部视图控制器,因此可以使用这两种方法中的任何一种。通过将UINavigation控制器作为参数传递,从当前所在的视图控制器中调用此方法。
func topMostViewController(controller:UINavigationController) -> UIViewController {
return controller.topViewController!
}
func visibleViewController(controller:UINavigationController) -> UIViewController {
return controller.visibleViewController!
}