11

TabBarController + NavigationController を追加するだけです。これまではすべて問題ありませんでしたが、モーダルから presentingViewController を呼び出すと、次のエラーが発生します。

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[UITabBarController tableViewListado]: 認識されないセレクターがインスタンスに送信されました

期待されるオブジェクト (ViewController) を受け取る代わりに、「UITabBarController」を取得しています。TabBar および Nav コントローラーを使用する場合、提示コントローラーを別の方法で取得する必要がありますか?

TabBar/Nav がなければ、私はこれを使用していました:

ViewController *parentView = (ViewController *)[self presentingViewController]; 

[parentView something];

編集:

これを行うとうまくいくことがわかりますが、これが実際に最善の方法だとは思わないでください。

ViewController *parentView = (ViewController *)[(UINavigationController *)[((UITabBarController *)[self presentingViewController] ) selectedViewController] topViewController]  ;

[parentView something];
4

1 に答える 1