http://www.jianshu.com/p/542ed89b6136
http://m.blog.csdn.net/article/details?id=50905594
http://m.blog.csdn.net/article/details?id=8476248
Token 失效返回登录页
例1: (rootVC)LoginViewController----(presen,no navBar)-----IndexViewController----(presen navBar)-----A----(push To)-----B
如果B要返回登录页,可以实现:
UIViewController *presenting = self.presentingViewController; //IndexViewController 模态显示的根视图控制器
UIViewController *presentingPresenTing = self.presentingViewController.presentingViewController; //LoginViewController 模态显示的根视图控制器的 模态VC
UIViewController *presented= self.presentedViewController; //nil 代表被模态显示的VC
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:NO completion:nil];
- (void)backToRootViewController
{
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UINavigationController *rootNav = (UINavigationController*)keyWindow.rootViewController;
UIViewController *visibleVC = rootNav.visibleViewController;
if([visibleVC isKindOfClass:[IndexViewController class]]) return;
if (![UserInfoObject currentUser].hasSuccess)
{
[UserInfoObject currentUser].hasSuccess = YES;
}
if(visibleVC.presentingViewController)
{
[visibleVC dismissViewControllerAnimated:NO completion:^{
[self backToRootViewController];
}];
}
else
{
[visibleVC.navigationController popViewControllerAnimated:NO];
[self backToRootViewController];
}
}
删除导航ViewController
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
[navigationArray removeAllObjects];
if (appDelegate.window.rootViewController)
{
[appDelegate.window.rootViewController removeFromParentViewController];
}