ios OC 获取当前控制器

直接贴代码,所有页面均可使用 view或者object

//拿到当前的控制器

  • (UIViewController *)getCurrentViewController {

UIViewController* currentViewController = [self getRootViewController];

BOOL runLoopFind = YES;

while (runLoopFind) {

if (currentViewController.presentedViewController) {

currentViewController = currentViewController.presentedViewController;

} else {

if ([currentViewController isKindOfClass:[UINavigationController class]]) {

currentViewController = ((UINavigationController *)currentViewController).visibleViewController;

} else if ([currentViewController isKindOfClass:[UITabBarController class]]) {

currentViewController = ((UITabBarController* )currentViewController).selectedViewController;

} else {

break;

}

}

}

return currentViewController;

}

  • (UIViewController *)getRootViewController{

UIWindow* window = [[[UIApplication sharedApplication] delegate] window];

NSAssert(window, @"The window is empty");

return window.rootViewController;

}

相关推荐
忙碌54414 小时前
OpenTelemetry实战指南:构建云原生全链路可观测性体系
ios·flink·apache·iphone
阿捏利16 小时前
详解Mach-O(十五)Mach-O __DATA_CONST
macos·ios·c/c++·mach-o
肖老师xy17 小时前
uniapp ios离线打包后xcode修改
ios·uni-app
wangyang627518 小时前
Xcode 26 真机运行崩溃 EXC_BAD_ACCESS map_images_nolock 完美解决方案
flutter·ios
编程之路从0到11 天前
ReactNative新架构之iOS端TurboModule源码剖析
react native·ios·源码阅读
SameX1 天前
春节期间独立开发者从 0 到 1:呼吸训练 iOS App 的工程化落地
ios
kevinli5 天前
available没你想象中的可靠
ios·编译原理