我对NavigationController有问题。我创建堆栈的导航控制器流程就像
案例1: - A--->B--->C
案例2: - D--->B--->C
这是调用navigationController的实际流程,其中A,B,C,D是不同的堆栈。 我通过这种方法调用这些堆栈:
B *b=[[B alloc]init]
[[self navigationController]pushViewController:b animated:YES];
问题
当我按顺序移动A-->B-->C
然后导航回C-->B-->A
如果我移动到D-->B
但是我带到了C
和
的错误 nested push animation can result in corrupted navigation
为什么会出现这个错误?
注意.. A and D
位于同一堆栈中。
答案 0 :(得分:1)
试试这个......希望它能帮到你......
NSArray *viewContrlls=[[self navigationController] viewControllers];
for( int i=0;i<[ viewContrlls count];i++)
{
id obj=[viewContrlls objectAtIndex:i];
if([obj isKindOfClass:[Yourclassname class]])
{
[[self navigationController] popToViewController:obj animated:YES];
return;
}
}
Yourclassname is your class which you want to push or pop and nothing to change
答案 1 :(得分:0)
或者每当你推VC时尝试这个。
YourAppDelegate *delegate=(YourAppDelegate*)[[UIApplication sharedApplication] delegate];
[delegate.window.navigationController pushViewController:whateverVCYouWant];
这只有一个导航堆栈,因此所有的推送和弹出都发生在一个堆栈中。