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;

}

}

相关推荐
库奇噜啦呼11 小时前
【iOS】NSOperation与NSOperationQueue
macos·ios·cocoa
二流小码农12 小时前
鸿蒙开发:实现文本渐变效果
android·ios·harmonyos
WiresharkClub19 小时前
抓包遇到私有协议全是乱码?抓包鹰自定义协议解码教程
ios
Lvan的前端笔记1 天前
ios:版本号和Build构建号
ios
鹤卿1232 天前
「iOS」3GShare总结
macos·ios·objective-c·cocoa
Lvan的前端笔记2 天前
ios:区分 App Store / Ad Hoc / Development
ios
Lvan的前端笔记2 天前
ios:证书配置
ios
FeliksLv2 天前
从 +load 到 Swift Macros:自动注册的演进与实践
ios·objective-c·swift
2501_915918412 天前
深入对比iOS开发中常用性能监控工具的底层原理与优缺点分析
android·ios·小程序·https·uni-app·iphone·webview
白玉cfc3 天前
【iOS】weak底层原理
macos·ios·cocoa