2

のタブの 1 つにをUINavigationController統合すると、UITabBarControllerUITabBarControllerユーザーが最後にタブを使用した場所を記憶します。UITabBarController を忘れて、初めてのように常にタブを開始することは可能ですか?

fe構造は次のとおりです

  • タブ1
    • ビュー1
    • ビュー2
  • タブ 2
    • ビュー1

ユーザーは Tab1/View1 から開始し、Tab1/View2 に移動します。Tab2/View1 に切り替えてから、Tab1 を押します。

  • 現在の動作: 彼は Tab1/View2 に表示されます
  • 望ましい動作: 彼は Tab1/View1 に表示されます
4

2 に答える 2

3

以下のようにしてみてください。

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    for(int i = 0; i < tabBarController.viewControllers.count; i++) {
        if(tabBarController.selectedIndex != i && [[tabBarController.viewControllers objectAtIndex:i] isKindOfClass:[UINavigationController class]])
            [[tabBarController.viewControllers objectAtIndex:i] popToRootViewControllerAnimated:NO];
    }
}
于 2013-01-31T09:45:27.070 に答える
1

UITabBarデリゲートプロトコルをご覧ください。

次に、そのように使用tabBarController:didSelectViewController:します:

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

    if (viewController != tabBarItem1) {
        [self.navigationControllerInTab1 popToRootViewControllerAnimated:NO];
    }
}

そうすれば、最初のタブアイテムを離れると、にポップNavigationControllerされrootViewControllerます。

于 2013-01-31T09:44:55.237 に答える