0

我试图弹出视图控制器堆栈两次,现在我得到了这个

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 中的标题。

提前致谢。

4

1 回答 1

1

因为我只想测试这种行为,所以我在其中运行代码-viewDidLoad,显然这导致了奇怪的问题。我的猜测是,在 viewDidLoad 中 UINavigationBar 可能没有完全设置,这会导致问题。

简而言之:不要尝试在 -viewDidLoad 中弹出视图控制器

于 2013-05-22T13:53:29.103 回答