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;

}

}

相关推荐
安和昂6 小时前
【iOS】SDWebImage源码学习
学习·ios
ii_best6 小时前
按键精灵ios脚本新增元素功能助力辅助工具开发(三)
ios
ii_best11 小时前
按键精灵ios脚本新增元素功能助力辅助工具开发(二)
ios
ii_best11 小时前
按键精灵ios脚本新增元素功能助力辅助工具开发(一)
ios
Swift社区16 小时前
Swift实战:如何优雅地从二叉搜索树中挑出最接近的K个值
开发语言·ios·swift
I烟雨云渊T20 小时前
iOS即时通信的技术要点
ios
鸿蒙布道师1 天前
鸿蒙NEXT开发动画案例5
android·ios·华为·harmonyos·鸿蒙系统·arkui·huawei
WDeLiang1 天前
Flutter - UIKit开发相关指南 - 导航
flutter·ios·dart
文件夹__iOS1 天前
深入浅出 iOS 对象模型:isa 指针 与 Swift Metadata
ios·swift
*拯2 天前
Uniapp Android/IOS 获取手机通讯录
android·ios·uni-app