我正在尝试弹出视图控制器堆栈两次,现在我已经做到了
UIViewController* controller = nil;
for (UIViewController* c in self.navigationController.viewControllers) {
if (c.class == [ControllerIWantToPopTo class]) {
controller = c;
break;
}
}
if (controller) {
[self.navigationController popToViewController:controller animated:YES];
return;
}这可以按预期工作,但UINavigationBar会损坏。
我的堆栈看起来像这样的anotherController -> ControllerIWanToPopTo -> MiddleController -> ControllerOnTop
如我所愿,控制器堆栈将弹出到ControllerIWantToPopTo,但导航栏中的按钮是来自MiddleController的按钮,标题是来自ControllerOnTop的标题。
提前谢谢。
发布于 2013-05-22 21:53:29
因为我只是想测试这个行为,所以我在-viewDidLoad中运行代码,显然这导致了奇怪的问题。我的猜测是,在viewDidLoad中,UINavigationBar可能没有完全设置,这就导致了问题。
简而言之:不要试图弹出到-viewDidLoad中的视图控制器。
https://stackoverflow.com/questions/16692312
复制相似问题