そのため、アプリのビューとしてUITabBarControllerがあり、その最初のタブはUINavigationControllerです。このビュー内に、別のカスタムビューをスタックにプッシュするボタンがあります。
myViewController *vc = [[myViewController alloc] init];
[self pushViewController:myOtherView animated:YES];
クラスにはとmyViewController
の両方の内部で発生するはずのことがありますが、UITabBarControllerビューが表示された直後にボタンを押すと、どちらのメソッドも呼び出されていないようです。さらに奇妙なことに、「戻る」を押すと、ビューはアニメーション化されず、スタック内のその下のビューが元の位置に戻ります。-viewDidLoad
-viewDidAppear:(BOOL)animated
ただし、タブバーの別のタブに移動してから最初のタブに戻り、もう一度ボタンを押すと、カスタムビューコントローラーがアニメーション化され-viewDidAppear:(BOOL)animated
て呼び出され、「戻る」を押すと表示されなくなります。したほうがいい。残念ながら、-viewDidLoad
呼び出されることはありません。
私は本当にすべてにInterfaceBuilderを使わないようにしようとしています。このViewControllerを純粋にプログラムで作成したいのですが、これらの奇妙な問題は役に立ちません。誰かがこの奇妙な行動の理由を考えることができますか?
編集:IBを介してView Controllerを作成しても、この動作は引き続き発生します。どうしたんだ?UITabBarControllerに何かをする必要がありますか?
編集#2:ビューを賭ける方法は次のとおりです。
- UITabBarControler
- タブ1:UINavigationController
- スタックにプッシュされるUIViewController
- スタックにプッシュされるUIViewController
- など(おそらくより多くのUIViewControllers)
- スタックにプッシュされるUIViewController
- タブ2:UIViewController
- タブ3:UINavigation Controller
- スタックにプッシュされるUIViewController
- スタックにプッシュされるUIViewController
- スタックにプッシュされるUIViewController
- タブ1:UINavigationController