私はこの問題を調査するのにかなりの時間を費やしましたが、SOを精査しても理解できません。基本的に、関連する UIViewController を持ついくつかのタブを持つ TabBarController (TBC) があります。私のアプリには、TBC の一部ではない他の UIViewControllersもあります。これらの非TBC UIViewControllersの1つにボタンがあり、クリックするとTBCだけでなく、0ではない特定のタブインデックスにも移動する必要があります。
多くの人が「ああ、self.tabBarControllerを参照してください...何とか何とか何とか」と言っているのを見つけましたが、TBC以外のUIViewControllerの1つにいると、selfが機能しません。
うまくいくかもしれないと思ったが、うまくいかなかった以下を見つけました。このコードは、必要な TBC への参照を取得し、その表示を見越してゼロ以外のインデックスを割り当て、セグエを実行します。残念ながら、セグエに続く最初のタブしか表示されません。
// doesn't work...
UITabBarController *TBC = [self.storyboard instantiateViewControllerWithIdentifier:@"TBC"];
TBC.selectedIndex = 1;
[self performSegueWithIdentifier:@"goTBC" sender:nil];
どんな助けでも大歓迎です!