获得最顶级的UIViewController

Sen*_*ful 55 cocoa-touch objective-c uiviewcontroller uinavigationcontroller

如果我推动视图控制器和/或提供模态视图控制器UINavigationController,我怎样才能找出最顶层的UIViewController?或者在我的情况下,我想知道某个UITableViewController是否是最重要的.

我试过用:

self.navigationController.topViewController == self
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.我猜测它失败了,因为我在它上面呈现模态视图控制器,并且topViewController只跟踪推送了哪些视图UINavigationController(而不是那些以模态方式呈现的视图).

Ada*_*nst 94

你想要visibleViewController:

当前可见的视图既可以属于导航堆栈顶部的视图控制器,也可以属于模态呈现的视图控制器.

  • 请注意,这仅适用于`UINavigationController`; 如果你没有这些,你需要使用其他方法. (3认同)

Swa*_*tik 21

NSArray *viewContrlls=[[self navigationController] viewControllers];

[viewContrlls lastObject];
Run Code Online (Sandbox Code Playgroud)