3

iPad アプリのストーリーボードに rootViewController として UITabBarController があります。

3 つの tabBarItems が含まれています。

各アイテムは、navigationController を保持します。つまり、合計 3 つの navigationControllers です。

シナリオ:

  1. 2 番目の tabBarItem を選択します。次に、関連付けられた rootController のビューを使用して、2 番目の navigationController が tabBarController に表示されます。

  2. この目に見えるナビゲーション コントローラーにいくつかのコントローラーをプッシュします。

  3. ここで、2 番目の tabBarItem (既に選択されています) をタップすると、tabBarController がプッシュされたすべてのコントローラーをポップアップ表示し、navigationController を rootController ビューに移動します。

質問: どうすればこの動作を止めることができますか? 選択された tabBarItem は、ユーザーが再度タップしたときにアクションを実行してはなりません。

4

2 に答える 2

4

UITabBarControllerrootViewController に in rootViewController を追加し、このデリゲートを実装する場合UITabBarControllerDelegate:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    UIViewController* selected = [tabBarController selectedViewController];

    if (viewController == selected)
        return NO;
    else
        return YES;
}
于 2013-11-01T17:50:29.383 に答える