0

tabBarController、navigationController、および 2 つのビュー (xcode 4.2) を含む単一のビュー アプリケーションがあります。特定のタブがいつ選択されたかを特定したいので、次のコードを使用してそうする予定です。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    NSLog(@"in testtableView.  %@", self.tabBarController.selectedViewController);
    NSLog(@"in testtableView. tab bar index is: %i", self.tabBarController.selectedIndex);

}

このコードは両方のビューに含まれています。これは、navigationController が存在しない場合、つまりアプリケーションが単純なタブ付きアプリケーションである場合に完全に機能します。ただし、navigationController が含まれていると、2 番目のタブ (navigationController) が最初に選択されたときにインデックスが 1 つ「ずれ」ますが、その後、ユーザーがタブを切り替え続けることにした場合はずれません。

ここに 2 つのスクリーン ショットがあり ます。私はそれらをフォトバケットに入れてみました..それを行うより良い方法はありますか? 以下は、異なるテストで各関数を呼び出す出力です。

2013-04-07 17:21:31.728 testTabBar[1921:207] in firstViewController.  <tabBarTestFirstViewController: 0x684ea80>
2013-04-07 17:21:53.626 testTabBar[1921:207] in secondViewConroller.  <UINavigationController: 0x684fce0>
2013-04-07 17:22:04.528 testTabBar[1921:207] in firstViewController.  <UINavigationController: 0x684fce0>
2013-04-07 17:22:06.544 testTabBar[1921:207] in secondViewConroller.  <tabBarTestFirstViewController: 0x684ea80>
2013-04-07 17:22:07.392 testTabBar[1921:207] in firstViewController.  <UINavigationController: 0x684fce0>
2013-04-07 17:22:07.816 testTabBar[1921:207] in secondViewConroller.  <tabBarTestFirstViewController: 0x684ea80>
2013-04-07 17:22:08.288 testTabBar[1921:207] in firstViewController.  <UINavigationController: 0x684fce0>

.

2013-04-07 17:50:33.075 testTabBar[2066:207] in firstViewController. tab bar index is: 0
2013-04-07 17:50:37.526 testTabBar[2066:207] in secondViewConroller. tab bar index is: 1
2013-04-07 17:50:37.982 testTabBar[2066:207] in firstViewController. tab bar index is: 1
2013-04-07 17:50:38.301 testTabBar[2066:207] in secondViewConroller. tab bar index is: 0
2013-04-07 17:50:38.668 testTabBar[2066:207] in firstViewController. tab bar index is: 1
2013-04-07 17:50:39.100 testTabBar[2066:207] in secondViewConroller. tab bar index is: 0
2013-04-07 17:50:39.532 testTabBar[2066:207] in firstViewController. tab bar index is: 1
2013-04-07 17:50:39.988 testTabBar[2066:207] in secondViewConroller. tab bar index is: 0
2013-04-07 17:50:40.372 testTabBar[2066:207] in firstViewController. tab bar index is: 1

何かご意見は?すでに投稿されているこれに対する解決策があるかもしれませんが、私はまだ見つけていません。

-マイク

4

1 に答える 1

0
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
{

    if (tabBarController.selectedIndex == 0) {




    }
    else if (tabBarController.selectedIndex == 1)
    {



    }

}
于 2013-04-08T07:31:34.760 に答える