問題:カスタムiOSのUITabBarController委任トリガのviewDidLoad
アンUITabBarControllerのデリゲートメソッドは、のviewDidLoadを呼び出し、否定/画面選択を無視します。
背景:
私は小さなiOS画面用のスプリットビューコントローラを作成しています。
削除のTabBarと詳細ビュー(RS)、私は、UITabBarControllerを使用していますのために:だから、ここまで画面は次のようになります。このhereのコードを見つけることができます。
ユーザーが左のボタンを選択し、デリゲートがボタンのタグIDをUITabBarControllerデリゲートメソッドに送信します。
デリゲートメソッドは次のようになります。代わりにブレークポイントで
// delegate method in subclass of UITabBarController
-(void) screenSelected:(int)screenNum
{
NSLog(@"delegate arrived: %d", screenNum);
self.selectedIndex = screenNum;
// code goes to viewDidLoad
}
、私はスクリーンが実際に変化していないと判断しました。
このscreenSelectedメソッドが代わりにUITabBarControllerのviewDidLoadメソッドから呼び出された場合(アプリケーションが最初に開くとき)、メソッドは正常に動作し、selectedIndexは期待どおりに変更されます。
私は、デリゲートがviewDidLoadをトリガーしている理由を理解しようとしています。デリゲートがビューをリセットしますか?あなたがもう一度タブを初期化しているため
おかげ
正確に何をしたいですか?質問を正しく理解できないのですか? – Lion
デリゲートメソッドが適切なviewControllerを表示し、デリゲートメッセージを受け取るたびにviewDidLoadメソッドを呼び出さないようにしたいと思います。 viewDidLoadはselectedIndexを0にリセットします。 – Dev