2012-02-20 16 views

答えて

4

UITabViewControllerクラスはありません。私はあなたがUITabBarControllerを意味すると仮定します。

UITabBarControllerの代理人を設定してください。デリゲートにナビゲーションコントローラへの参照を渡します。たとえば、多分あなたは、タブバーコントローラのデリゲートとしてアプリケーションデリゲートを使用します。

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> 

@property (nonatomic, weak) IBOutlet UINavigationController *theNavigationController; 

あなたはペン先やコードのいずれかで、プロパティをフックにしてください。

@implementation AppDelegate 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if (viewController == self.theNavigationController) { 
     [self.theNavigationController popToRootViewControllerAnimated:NO]; 
    } 
} 
+2

代わりの理由 '[ViewControllerをisKindOfClass:[UINavigationControllerクラス]で選択のViewControllerの種類をチェックしない、基準との比較:'は、型キャストを 次に、デリゲートでは、tabBarController:didSelectViewController:メソッドをオーバーライド結果に 'popToRootviewController'を実行していますか? – Till

+0

おっと、私のタイトルを修正しました。 – Baub

+1

@私は質問に合った答えを出しました。それには長所と短所があります。 –

1

UITabBarViewContollerのデリゲートを、そしてそれはあなたのUINavigationController呼び出すようにそのtabBarController:didSelectViewController:を実装 'を設定UINavigationControllerが選択されている場合popToRootViewControllerAnimated:秒。

関連する問題