0

我对 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在同一个堆栈上。

4

2 回答 2

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
于 2013-01-11T06:32:31.120 回答
0

或者在你推送 VC 时试试这个

YourAppDelegate *delegate=(YourAppDelegate*)[[UIApplication sharedApplication] delegate];
[delegate.window.navigationController pushViewController:whateverVCYouWant];

这将只有一个导航堆栈,因此您所有的推送和弹出都发生在一个堆栈中。

于 2013-01-11T06:37:56.507 回答