Iphone 嵌套的UINavigationController流已损坏
导航控制器有问题..我创建堆栈的导航控制器流程如下 案例1:-Iphone 嵌套的UINavigationController流已损坏,iphone,ios,uinavigationcontroller,uinavigationbar,Iphone,Ios,Uinavigationcontroller,Uinavigationbar,导航控制器有问题..我创建堆栈的导航控制器流程如下 案例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 这很有效。现在,如果我
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
及
错误嵌套推送动画可能导致导航损坏
为什么会出现这个错误
注意..
A和D在同一堆栈上。试试这个。。。希望它能帮助你
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
NSArray*viewcontlls=[[self-navigationController]viewControllers];
对于(int i=0;i或在每次按下VC时尝试此操作
YourAppDelegate *delegate=(YourAppDelegate*)[[UIApplication sharedApplication] delegate];
[delegate.window.navigationController pushViewController:whateverVCYouWant];
这将只有一个导航堆栈,因此所有的推送和弹出操作都在一个堆栈中进行。如果移动到D-->B,则再次共享代码…与我上面使用的相同(已编辑)…检查我在移动A-->B时已更正..@Vishal你能告诉我..我们导航回..哪个方法被调用了..ViewDidLoad我认为不会被称为ViewVillAppear方法dude。。。