获得最顶级的UIViewController

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

我试过使用:

 self.navigationController.topViewController == self 

…但这不起作用。 我猜这是失败的,因为我在它上面展示了模态视图控制器,并且topViewController只跟踪哪些视图被推送到UINavigationController (而不是模态显示的那些视图)。

你想要visibleViewController

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

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