ios - How to get visible viewController from app delegate when using storyboard? -
i have viewcontrollers
, , don't use navigationcontroller
. how can visible view controller in app delegate methods (e.g. applicationwillresignactive
)?
i know how nsnotification
, think it's wrong way.
this should you:
- (void)applicationwillresignactive:(uiapplication *)application { uiviewcontroller *vc = [self visibleviewcontroller:[uiapplication sharedapplication].keywindow.rootviewcontroller]; } - (uiviewcontroller *)visibleviewcontroller:(uiviewcontroller *)rootviewcontroller { if (rootviewcontroller.presentedviewcontroller == nil) { return rootviewcontroller; } if ([rootviewcontroller.presentedviewcontroller iskindofclass:[uinavigationcontroller class]]) { uinavigationcontroller *navigationcontroller = (uinavigationcontroller *)rootviewcontroller.presentedviewcontroller; uiviewcontroller *lastviewcontroller = [[navigationcontroller viewcontrollers] lastobject]; return [self visibleviewcontroller:lastviewcontroller]; } if ([rootviewcontroller.presentedviewcontroller iskindofclass:[uitabbarcontroller class]]) { uitabbarcontroller *tabbarcontroller = (uitabbarcontroller *)rootviewcontroller.presentedviewcontroller; uiviewcontroller *selectedviewcontroller = tabbarcontroller.selectedviewcontroller; return [self visibleviewcontroller:selectedviewcontroller]; } uiviewcontroller *presentedviewcontroller = (uiviewcontroller *)rootviewcontroller.presentedviewcontroller; return [self visibleviewcontroller:presentedviewcontroller]; }
Comments
Post a Comment