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;

}

}

相关推荐
北京自在科技1 天前
谷歌 Find Hub 网页端全面升级:电脑可直接管理追踪器与耳机
android·ios·安卓·findmy
for_ever_love__1 天前
UI 学习 Appearance 外观管理
学习·ui·ios·objective-c
codeejun1 天前
每日一Go-52、Go微服务--请求超时与熔断策略实战
微服务·golang·iphone
懋学的前端攻城狮1 天前
自定义导航栏的深度实践:从视觉需求到架构设计
ios
2501_916007471 天前
从零开始学习iOS开发:Xcode环境配置与项目创建完整指南
ide·vscode·学习·ios·个人开发·xcode·敏捷流程
平淡风云1 天前
Copying shared cache symbols from xxx iPhone
ios·iphone·xcode
blackorbird1 天前
Predator间谍软件iOS内核利用引擎深度解析
macos·ios·objective-c·cocoa
独隅1 天前
PyTorch模型转换为TensorFlow Lite实现 iOS 部署的全面指南
pytorch·ios·tensorflow
懋学的前端攻城狮2 天前
超越Toast:构建优雅的UI反馈与异步协调机制
ios·性能优化
00后程序员张2 天前
完整教程:如何将iOS应用程序提交到App Store审核和上架
android·macos·ios·小程序·uni-app·cocoa·iphone