如何找到UIWindow里最顶层的ViewController

如何找到UIWindow里最顶层的ViewController

- (UIViewController *)topViewController{
return [self topViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
}
 
- (UIViewController *)topViewController:(UIViewController *)rootViewController
{
if (rootViewController.presentedViewController == nil) {
return rootViewController;
}
if ([rootViewController.presentedViewController isMemberOfClass:[UINavigationController class]]) {
UINavigationController *navigationController = (UINavigationController *)rootViewController.presentedViewController;
UIViewController *lastViewController = [[navigationController viewControllers] lastObject];
return [self topViewController:lastViewController];
}
UIViewController *presentedViewController = (UIViewController *)rootViewController.presentedViewController;
return [self topViewController:presentedViewController];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UIWindow是Cocoa框架的重要组件之一,所有的UIView都要通过UIWindow来进行展现,没有UIWi...
    文兴阅读 10,414评论 3 33
  • 前言 在iOS中开放中,我们可能会遇到需要通过代码获取当前显示在屏幕最顶层的ViewController,比如我们...
    wty21cn阅读 8,262评论 5 21
  • 本文转自wty21cn的简书 前言 在iOS中开放中,我们可能会遇到需要通过代码获取当前显示在屏幕最顶层的View...
    逗逼凹凸曼阅读 1,443评论 0 0
  • UIView的功能 负责渲染区域的内容,并且响应该区域内发生的触摸事件 UIWindow 在iOS App中,UI...
    小蘑菇2阅读 4,153评论 4 5
  • 感恩张慧老师像一盏灯一样吸引我早起,愿天下众生都能拥有丰盛富足的时间去做自己想做的事; 感恩婆婆给我们做饭、带孩子...
    天门金珠瑜伽阅读 1,573评论 0 3