2

UINavigationController内に埋め込まれたアプリケーションに取り組んでいますUITabBarControllerUINavigationControllerには、セルがタップされるとDetailControllerUITableViewに遷移する があります。

私の質問は: [TAB1]でセルを選択し、 DetailControllerに移行します。[TAB2]を選択してから[TAB1]に戻ると、まだ詳細コントローラーにあります。[TAB2]が選択されている場合、[TAB1] で DetailController をアンワインド/非表示にすることができます(つまり、テーブル ビュー セルを再度表示します)。

私のもう 1 つの考え方は、これを行うと UI がユーザーが残した状態のままにならないということです。つまり、DetailControllerを表示して[TAB2]を押した後に[TAB1]に戻ると、UITableView. TABを離れると、アプリケーションがDetailControllerを元に戻す方が良いと感じます。そのため、私は尋ねています...

注意: I present the *DetailController* via a push segue from theUITableViewCell.

4

1 に答える 1

2

UITabBarControlleDelegateを実装して、タブが変更されたときにUINavigationController使用するルートビューに戻ることができます。popToRootViewControllerAnimated:

コード例:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    tabBarController.delegate = self;
    return YES;
}

  - (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController
{
    UIViewController *currentController = tabBarController.selectedViewController;
    if ([currentController isKindOfClass:[UINavigationController class]])
         [(UINavigationController *)currentController popToRootViewControllerAnimated:NO];
    return YES;
}
于 2013-03-22T18:30:14.623 に答える