0

View Controllerスタックを2回ポップしようとしていますが、今はこれを持っています

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 に答える