【发布时间】:2016-10-25 08:24:18
【问题描述】:
我们知道,如果你的 viewController 已经包含 UINavigationController ,
你可以通过'self.navigationController.visibleViewController'找到你当前的可见视图控制器。
但是我给你一个视图控制器,如何找到当前可见的控制器?
例如:
code one :
------
AVClr *avclr = [[AVClr alloc]init] ;
AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate ;
appDelegate.window.rootViewController = avclr ;
[avclr presentViewController:loginNavClr animated:YES completion:nil] ;
---> 现在,显示avclr
code two:
------
AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate ;
UIViewController *currentVisibleViewController = appDelegate.window.rootViewController ;
BVClr *bvclr = [[BVClr alloc]init] ;
[currentVisibleViewController presentViewController:bvclr animated:YES completion:nil] ;
--->现在,显示bvclr
code three:
------
AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate ;
UIViewController *currentVisibleViewController = appDelegate.window.rootViewController ;
CVClr *cvclr = [[CVClr alloc]init] ;
[currentVisibleViewController presentViewController:cvclr animated:YES completion:nil] ;
--->错误,无法显示cvclr,因为avclr是rootViewController,而avclr存在bvclr,所以显示bvclr。
问题:
但是我们知道,在另一个 .m 文件中编码三个,所以我们不知道 rootViewController 是谁。所以如果我提出cvclr,结果出乎意料!
在这种情况下,如何显示cvclr
【问题讨论】: