UINavigation代理问题.


今天在学习UInavigationController的时候,通过NavigationViewController把RootViewController作为根视图赋值给window.rootViewController.


 RootViewController * rootC = [[RootViewController alloc] init];
    UINavigationController * naviVC = [[UINavigationController alloc] initWithRootViewController:rootC];

    self.window.rootViewController = naviVC;

然后我在RootViewController当中,设置self.NavigationViewController.delegate = self;

接着我设置一个新的MainViewController,然后从RootViewController用按钮触发方法调用: [self.navigationController pushViewController:mainVC animated:YES];
跳转到MainViewController.

我这边需要两个页面循环跳转.所以又在MainViewController中设置一个按钮触发方法: [self.navigationController pushViewController:rootVC animated:YES]; 跳转到RootViewController.

所以,跳转后压栈变成:(


 "<RootViewController: 0x7fbf88541870>",
"<MainViewController: 0x7fbf88498c90>",
"<RootViewController: 0x7fbf8856c300>",
"<MainViewController: 0x7fbf88590270>",
...

)

如果是这样,就会在push了两个(或者更多的)页面之后,用 [self.navigationController popViewControllerAnimated:YES]; 方法pop了2次或者3次的时候,就会崩溃了.

但是push一个页面,再pop一个页面,是不会崩溃的.

请教各位大神,有没遇到这种情况的??

还有,这是为什么啊??

uinavigationcontroller ios

诸神的黄昏 9 years, 4 months ago

Your Answer