2011-11-08 6 views
0

私は、ユーザーが、私はそのトップレベルにそれをプッシュする選択されたタブのために、タブを変更すると、それはそのrootviewcontroller、とき押しタブバーしかし、それはそれはないだろう」S Rootviewcontroller

ことはないだろう特定のタブを押してくださいコントローラ。

私はこの方法ではなく、作品を実装する必要があり、これで間違って何

-(void)tabBarController:(UITabBarController *) tabBarController didSelectViewController : (UIViewController *)viewController 
{ 
    [viewController.navigationController popToRootViewControllerAnimated:NO]; 
} 

?私はそれを行うことができますどのように

+0

設定しましたか? これは役に立ちます:http://stackoverflow.com/questions/2530266/my-uitabbarcontrollers-didselectviewcontroller-method-is-not-getting-called – MoFuRo

+0

はい、私はUITabBarControllerDelegateを設定しました –

答えて

2

(あなたはUITabBarControllerのデリゲートを設定する必要がない場合)メソッドが呼び出されると仮定すると、あなたはおそらくのViewControllerとして(のUIViewControllerのサブクラスである)UINavigationControllerを受けている、あなたはそれをログインすることで確認できます。

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

そのような場合には、viewController.navigationControllerはおそらく皆無になり、あなたがやるべきこと:あなたのデリゲートを

-(void)tabBarController:(UITabBarController *) tabBarController didSelectViewController : (UIViewController *)viewController 
{ 
    if ([viewController isKindOfClass:[UINavigationController class]]) 
     [(UINavigationController*)viewController popToRootViewControllerAnimated:NO]; 
} 
+0

ありがとう、それは私のために働く.. –

関連する問題