比如说,从a界面到b界面,现在我需要从b界面返回到a界面,并传一个参数,大家都知道可以代理好多方法,今天通过[self.navigationControllerpopToViewController:reviseanimated:YES]; 也可返回带个参数,但是一开始模仿者push的道理
ZYHHomeViewController*revise =(ZYHHomeViewController*)controller;
revise.str= str;
[self.navigationControllerpopToViewController:reviseanimated:YES];
但是运行的时候崩溃了,其实这个原因是pop的试图不存在,必须保证在栈内查找,在viewControllers遍历,加了一个判断是不是这个VC,如果是在推出这个视图。修改后的如下
NSString*str =@"返回传值";
for(UIViewController*controllerinself.navigationController.viewControllers) {
if([controllerisKindOfClass:[ZYHHomeViewControllerclass]]) {
ZYHHomeViewController*revise =(ZYHHomeViewController*)controller;
revise.str= str;
[self.navigationControllerpopToViewController:reviseanimated:YES];
}
}
网友评论