最近写代码的时候出了点BUG, 查阅资料后终于解决了. 问题原因大概是: 项目中所有的viewController都是继承自一个封装好的viewController. navigationbar, navigationbaritem所有的方法都是大神自己写的.所以pop回主界面不知道怎么的会跳转到登录界面, 下面说我解决的方法:
比如先从A界面跳到B界面,再从B界面跳到C界面,最后需要从C界面直接跳转到A界面,在这里我讲讲解直接从C界面跳转到A界面的方法。在iOS开发中,我们通常用得最多的页面跳转方式就是通过NavigationBar的push和pop跳转方法,下面这种跳转方法也是基于NavigationBar的跳转方法。因为NavigationBar跳转时候实际是将各个页面放在一个栈里面,需要往上层跳转时候只需要遍历一遍栈,找到自己想跳转的那个页面。
HomeViewController *homeVC = [[HomeViewController alloc] init]; UIViewController *target = nil; for (UIViewController * controller in self.navigationController.viewControllers) { if ([controller isKindOfClass:[homeVC class]]) { target = controller; } } if (target) { [self.navigationController popToViewController:target animated:YES]; }