我正在使用故事板和故事板ID,我是导航堆栈中的几个控制器。
我目前在“结果控制器”上,我想转到“项目控制器”,但重置/重新加载该控制器,我将传递它当前具有的相同属性值。所以实际上我会上升两个级别然后推进。
我只是想知道最好的方法是什么?
我想我可以调用pop几次,然后在我的'Result Controller'中将属性值传递给'Item Controller'?
嗯,我想我会保留第一个pop的动画,然后禁用它进行两次推送。希望这是有道理的。
答案 0 :(得分:2)
试试这个。也许它会帮助你。
NSArray *vList = [[self navigationController] viewControllers];
UIViewController *view;
for (int i=[vList count]-1; i>=0; --i) {
view = [vList objectAtIndex:i];
if ([view.nibName isEqualToString: @"ItemController"])
{
[self.navigationController popToViewController:view animated:YES];
break;
}
}
答案 1 :(得分:1)
试试这个
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:2] animated:YES];
你可以回到你想要的任何索引
答案 2 :(得分:1)
for (UIViewController *controller in [self.navigationController viewControllers])
{
if ([controller isKindOfClass:[YourViewCOntrollerName class]])
{
[self.navigationController popToViewController:controller animated:YES];
break;
}
}
答案 3 :(得分:0)
弹出到特定视图控制器(在本例中为ItemController),您可以使用下面的代码
[self.navigationController popToViewController:ItemController animated:YES];
答案 4 :(得分:0)
您尝试制作它的方式并不是最佳选择,最终可能会导致问题。干净的方法是编写一种方法来重置“项目控制器”,这样你只需要做1次弹出。