Мы знаем, если ваш 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
.
Вопрос:
Но мы знаем код 3 в другом .m файле, поэтому мы не знаем, кто является rootViewController. поэтому, если я представлю cvclr
, результат будет неожиданным!
В данных обстоятельствах, как отобразить cvclr