有时候我们希望在controller中跳转到下一个页面, 并且关闭当前页面, 那么下面的方法就是通过改变navigation的contollers 实现了该功能:
先把整体代码贴下,后面是详细的分布介绍,不想看可以略过
-(void)jumpViewControllerAndCloseSelf:(UIViewController *)vc{
NSArray *viewControlles = self.navigationController.viewControllers;
NSMutableArray *newviewControlles = [NSMutableArray array];
if ([viewControlles count] > 0) {
for (int i=0; i < [viewControlles count]-1; i++) {
[newviewControlles addObject:[viewControlles objectAtIndex:i]];
}
}
[newviewControlles addObject:vc];
[self.navigationController setViewControllers:newviewControlles animated:YES];
}
1, 首先获取当前navigationController的viewControllers
NSArray *viewControlles = self.navigationController.viewControllers;
2, 新建一个新的数组,来放新的viewControlles:
NSMutableArray *newviewControlles = [NSMutableArray array];
3,将viewControlles的viewController 逐个放到newviewControlles, 但是最后一个不要放进去
if ([viewControlles count] > 0) {
for (int i=0; i < [viewControlles count]-1; i++) {
[newviewControlles addObject:[viewControlles objectAtIndex:i]];
}
}
4,将新的controller放进newviewControlles
[newviewControlles addObject:vc];
5, 重新设置navigationController的viewControllers
[self.navigationController setViewControllers:newviewControlles animated:YES];
网友评论