4

UINavigationControllerの下、つまりUINavigationBarの下にあるアプリがあります。このUINavigationBarの上にモーダルビューコントローラーを表示したいのは、作成したコントローラーがその下にあると意味がないためです(つまり、このビューコントローラーを表示するときにナビゲーションバーを非表示にします)。

このコードでそれを提示する:

    ukc = [[UnlockKeyboardViewController alloc] init];
    [self presentModalViewController:ukc animated:NO];

モーダルビューコントローラをUINavigationBarの下に配置します。このモーダルビューを表示しても、そのUINavigationBarは表示されません。どうすればそれを回避できますか?

PS:これは脱獄アプリなので、InterfaceBuilderはありません。

4

2 に答える 2

9
[self.navigationController presentModalViewController:ukc animated:NO];
于 2012-07-25T20:42:45.373 に答える
0

関連する問題を処理する際の追加情報:

note173の答えも同様に機能しanimated:YESます。ユーザーにはukc、のビューがナビゲーションスタック上を上にスライドするのが表示されます。

その後、却下してのビューにukc戻る必要がある場合は、次のようにします。self

        [self.navigationController dismissModalViewControllerAnimated:NO];
        [self.navigationController dismissModalViewControllerAnimated:YES]; 

最初の呼び出しは却下されukcます。2番目の呼び出しは、navコントローラーを閉じます。ユーザーにukc表示されるのは、ビューを下にスライドさせてselfビューを表示し、その背後にあるナビゲーションスタックを垣間見ることです。

つまり、ここにあるのは、ナビゲーションスタックから他の通常のビューコントローラーに直接切り替えてから、ベースビューコントローラーに戻す方法です。これらはすべて、順次意味のあるアニメーションを使用します。

(ナビゲーションスタックとの間を行ったり来たりすることが目的の場合は、1回の呼び出しでukc却下します。これにより、ビューが下にスライドしてナビゲーションスタックが表示されます。)ukcself.navigationController dismissModalViewControllerAnimated:YES];ukc

これらのメソッドはiOS5で非推奨になっていることに注意してください。私は同じことを想定presentViewControllerdismissViewControllerAnimatedて実行しますが、テストしていません。

于 2012-08-22T21:38:59.090 に答える