您的位置:首页 > 产品设计 > UI/UE

uinavigationcontroller 中的viewcontrollers 跳到指定的controller一个栈顶指针的变化

2016-01-25 14:00 513 查看
1:栈:先进先出原则。

2:如果是回到上一个控制器,直接self.nav popviewerconvc 即可。

3:如果是回到指定的控制器,需要遍历控制器数组。

for(UIViewController *controller in self.navigationController.viewControllers) {

if([controller isKindOfClass:[BBBViewController class]]){
BBBViewController *owr = (BBBViewController *)controller;
[self.navigationController popToViewController:owr animated:YES];
}
}
此时,中间如果间隔的那些控制器,应该是没有栈顶强指针指着,会自动销毁。



4:如果是回到最下面一个控制器的话,是直接poptorootviewVC

[self.navigationController popToRootViewControllerAnimated:YES];
5:初始化的话:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];

UINavigationController *nav = [[UINavigationController alloc]init];

FFFViewController *fff = [[FFFViewController alloc]init];
BBBViewController *bbb = [[BBBViewController alloc]init];
CCCViewController *ccc = [[CCCViewController alloc]init];
DDDViewController *ddd = [[DDDViewController alloc]init];
AAAViewController *aaa = [[AAAViewController alloc]init];
EEEViewController *eee = [[EEEViewController alloc]init];

[nav setViewControllers:[[NSArray alloc]initWithObjects:fff,bbb,ccc,ddd,aaa,eee,nil] animated:YES];

self.window.rootViewController = nav;
[self.window makeKeyAndVisible];


代码上传到csdn--中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: