2

私はこのコードを持っています:

-(void)applicationDidBecomeActive:(UIApplication *)application {
JUnlockController *passcodeView = [[JUnlockController alloc] init];
[self.navigationController presentModalViewController:passcodeView animated:YES];
}

問題は、アプリでモーダル ビュー コントローラーを開いているときに、その上に表示されないことです。ユーザーが現在見ているビューコントローラーを見つけて、その上に表示できるようにしたいのです。

4

2 に答える 2

3

それ以外の:

[self.navigationController presentModalViewController:passcodeView animated:YES];

使用する:

[self presentModalViewController:passcodeView animated:YES];
于 2012-07-16T14:00:22.607 に答える
2

アプリがそのナビゲーション コントローラーによってのみナビゲートされる場合は、どの viewController が表示されているかをアプリに問い合わせることができます。

[self.navigationController.visibleViewController presentModalViewController:passcodeView animated:YES];

または、すべてのビュー コントローラーでこれを登録し、登録を解除するカスタム クラスを拡張することで、UIApplicationDidBecomeActiveNotificationを活用できます。カスタム基本クラスで、モーダルを表示するコールバックを実装します。viewWillAppearviewWillDissapear

self.navigationControllerこれは、アプリ内にデリゲートがあることを前提としていることに注意してください(セットアップします。代わりに次のようなものを使用する必要がある場合がありますself.window.rootViewController

于 2012-07-16T13:57:13.573 に答える