问题:数组
你想要直接控制导航控制器中的的特性动画
解决方法:spa
使用UINavigationController类中的ViewControllers属性来访问和修改与导航控制器相关的视图控制器对象
- (void) goBackci
{rem
/*获得控制器的当前数组*/it
NSArray *currentControllers = self.navigationController.viewControllers;io
/*在这个数组以外建立一个可变数组*/table
NSMutableArray *newControllers = [NSMutableArray arrayWithArray: CurrentControllers];ast
/*从数组中删除最后一个对象*/
[newControllers removeLastObject];
/* 分配这个数组到导航控制器*/
self.navigationController.viewController = newControllers;
}
您能够以从与当前视图控制器相关联的导航控制器的层次弹出最后一个视图控制器调用内部的任何视图控制器这种方法。
讨论:
本的UINavigationController类的一个实例持有的UIView控制器对象的数组。检索该数组后,您能够在您但愿的任何方式操纵它。举例来讲,你能够从数组中的任意位置删除一个视图控制器。
经过分配一个数组来导航控制器的viewControllers财产直接操做导航控制器的视图控制器将提交操做,无需过渡/动画。若是您但愿操做进行动画,使用setViewControllers :动画:在的UINavigationController类的方法,以下面的代码:
- (void) goBack
{
/*获得控制器的当前数组*/
NSArray *currentControllers = self.navigationController.viewControllers;
/*在这个数组以外建立一个可变数组*/
NSMutableArray *newControllers = [NSMutableArray arrayWithArray: CurrentControllers];
/*从数组中删除最后一个对象*/
[newControllers removeLastObject];
/* 分配这个数组到导航控制器*/
[self.navigationController.viewController = newControllers animated:YES];
}