私のアプリケーションがアクティブになるたびにビューコントローラ(パスコード要求タイプビュー)を表示しようとしています。正しいパスコードが入力されると、スタックから飛び出すはずです。プッシュしようとしているパスコードビューは最初のビューコントローラではないので、AppDelegateのapplicationDidBecomeActiveからアクセスするのに問題があります。AppDelegateから特定のビューコントローラを提示する
また、MainViewControllerのViewWillAppearからパスコードビューをプッシュしようとしましたが、アプリケーションがアクティブになったときに呼び出されることはありません。画面がリフレッシュされたときのみです。
私は過去数日間にわたって同様の問題を研究してきましたが、まだ適切な方法を理解していません。 StoryboardやNavigationControllerが接続/初期化される前などにapplicationDidBecomeActiveが呼び出される可能性があるため、このようにビューをプッシュすることができない可能性があると聞きました。
誰かがビューをプッシュ/プレゼンテーションする正しい方法を私に提供することができた場合、またはこのタイプのものを実行する方が良い場合は、それを感謝します。
解決済み:私はストーリーボードからビューを削除し、代わりにペン先を使用しました。私が使用:
PasscodeUnlockVC *passcodeUnlock = [[PasscodeUnlockVC alloc] initWithNibName:@"PasscodeUnlockVC" bundle:[NSBundle mainBundle]];
[(UINavigationController *)self.window.rootViewController pushViewController:passcodeUnlock animated:NO];
ビュー階層データ:
(gdb) po [[(id)UIApp keyWindow] recursiveDescription]
<UIWindow: 0x736a4b0; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x7367b40>>
| <UILayoutContainerView: 0x76977a0; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x769de60>>
| | <UINavigationTransitionView: 0x7692110; frame = (0 0; 320 480); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x769a8c0>>
| | | <UIViewControllerWrapperView: 0x73868d0; frame = (0 64; 320 416); autoresize = W+H; layer = <CALayer: 0x75510e0>>
| | | | <UIView: 0x76b93e0; frame = (0 0; 320 416); autoresize = W+H; layer = <CALayer: 0x7386850>>
| | <UINavigationBar: 0x73664b0; frame = (0 20; 320 44); clipsToBounds = YES; opaque = NO; autoresize = W; layer = <CALayer: 0x7366550>>
| | | <UINavigationBarBackground: 0x7360ea0; frame = (0 0; 320 44); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7366520>> - (null)
| | | <UINavigationItemView: 0x76b95e0; frame = (160 21; 0 0); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x76aa8e0>>
| | | <UINavigationItemButtonView: 0x7550650; frame = (5 7; 73 30); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7368b40>>
Current language: auto; currently objective-c
(gdb)
私は 'viewDidBecomeActive'メッセージに慣れていないんだ、と私はそれのために' developer.apple.com'を検索するとき、私は結果を得ませんでした。おそらく、この方法についてもっと詳しく教えてください。あるいは、あなたのコードを見せてください。 –
申し訳ありませんが、私はapplicationDidBecomeActiveを意味しました。私は投稿を編集します。 –
私はあなたのモーダルビューを再現しようとしていますが、pushViewController:animatedは認識できません。あなたがiOS 6でこれを試したかどうか教えてください。 – perrohunter