iPhone - 如何找到最顶层的视图控制器

  • (UIViewController*)topViewController {

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;

}

}

相关推荐
一一一一一一__113 分钟前
苹果macOS 15.0 Sequoia正式版发布:iPhone应用镜像玩、手机消息电脑知
macos·智能手机·iphone
万兴丶3 小时前
Unnity IOS安卓启动黑屏加图(底图+Logo gif也行)
android·unity·ios
2401_852403556 小时前
探索iPhone一键删除重复照片的方法
ios·iphone
pf_data1 天前
手机换新,怎么把旧iPhone手机数据传输至新iPhone16手机
ios·智能手机·iphone
键盘敲没电2 天前
【iOS】KVC
ios·objective-c·xcode
吾吾伊伊,野鸭惊啼2 天前
2024最新!!!iOS高级面试题,全!(二)
ios
吾吾伊伊,野鸭惊啼2 天前
2024最新!!!iOS高级面试题,全!(一)
ios
不会敲代码的VanGogh2 天前
【iOS】——应用启动流程
macos·ios·objective-c·cocoa
GEEKVIP2 天前
恢复已删除文件的可行方法,如何恢复已删除的文件
macos·智能手机·电脑·笔记本电脑·cocoa·iphone·ipad
Swift社区2 天前
Apple 新品发布会亮点有哪些 | Swift 周报 issue 61
ios·swiftui·swift