0

呼び出された UIViewControllers のボタンを使用して、選択したインデックスを設定したい tabBar を持つアプリがあります。

tabBar はストーリーボードで作成されたので、私の階層は次のようになります。

mainTabBarController Scene
  First Reponder
  mainTabBarController
    mainTabBar
  multiple relationships for the proper ViewControllers

アイデアはこれです:

タブ A              タブ B              タブ C              タブ D
    | | | | | | |
navCon1 navCon2 navCon3 navCon4

親 TabBarController の selectedIndex をボタンで ABC または D に設定する (1-4 を参照して、既に正しく呼び出されている) ナビゲーション コントローラーの 1 つにボタンが必要です。実用的にボタンを追加しようとしましたが、選択したインデックスを強制的に変更するために tabBarBontroller を参照する方法がわかりません:

refreshPage という関数があるため、これは正常に機能します。

UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc]
                              initWithMarButtonStyleItem:UIBarButtonSystemItemRefresh target:self;
                              action:@selector(refreshPage:)
                              ];

親のtabBarControllerを不適切に参照している可能性があるため、これは機能しません

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
                              initWithMarButtonStyleItem:UIBarButtonSystemItemCancel target:self;
                              action:[self.tabBarController selectedIndex:1]
                              ];

私は tabBarController に名前を付け、その中の tabBar ..しかし、これらの名前を使用してそれらを参照することもできないようです。任意の推奨事項をいただければ幸いです。

これは私が抱えている問題の 1 つにすぎません。別のタブに移動すると、TabBar の子がデフォルトでメイン タブ (または親ビュー コントローラー) に戻り、TAb A にいるときにコントローラー 1 または 1a に移動するようにしたいからです。など、タブ B に移動すると、タブ A は自動的にその階層の先頭に戻ります...しかし、それは別の質問です:)

ありがとう、シルバータイガー

4

1 に答える 1

0

最初のメソッドを使用し、「refreshPage」メソッドで [self.tabBarController selectedIndex:1] を呼び出します。

于 2012-04-30T16:50:48.470 に答える