4

3 つの項目を持つタブ バーがあります。それぞれが を指しUINavigationControllerます。それぞれの下UINavigationControllerにいくつかviewControllersあります。タブバーの項目が押されたときに、ナビゲーションの最初のコントローラーにリセットしたいと考えています。

TabBarController実装を次のように指定しましたdelegate

self.delegate = self以下の私のメソッド(私のTabBarController実装で実行すると、 UINavigationControllers.

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    NSLog(@"%@", viewController);
}

ログファイルが表示されている場合

UINavigationController: 0x8a31a90>2012-12-31 02:16:40.035 Demo[6142:c07] 

このメソッドを試してみるとpopToRootViewControllerpopViewControllerうまくいかないようです。エラーは発生しませんが、viewControllersリセットされません。ここで非常に基本的なエラーを犯したようですが、何がわかりません。

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    NSLog(@"%@", viewController);
    [self.navigationController  popToRootViewControllerAnimated:YES];
    [[self navigationController] popViewControllerAnimated:YES];
}
4

2 に答える 2

3

TabViewController (self) ではなく、navigationController (viewcontroller) で popToRootViewController が必要です。

[viewController  popToRootViewControllerAnimated:YES];
于 2012-12-31T03:21:24.023 に答える