Iphone 嵌套的UINavigationController流已损坏

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 这很有效。现在,如果我

导航控制器有问题..我创建堆栈的导航控制器流程如下

案例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

错误
嵌套推送动画可能导致导航损坏
为什么会出现这个错误


注意..
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。。。