0

私のアプリはタブベースのアプリケーションです。一部のタブにはナビゲーションコントローラーがあります。

ここに画像の説明を入力してください

ビュー内を移動し、2番目のビュー(ナビゲーション内)にいてタブを変更した場合、タブをもう一度クリックすると、終了時に2番目のビューから開始されます。

だから、私が欲しいのは、タブを変更するときです。

popToRootViewControllerAnimated:

効果。だから、私はいつも最初のビューから始めます。

これどうやってするの?

ありがとう!

Bart Whiteleyの答えであるMainTab.hに従って、プロジェクトにコードを追加します。

#import <UIKit/UIKit.h>

@interface MainTab : UITabBarController <UITabBarControllerDelegate,UITabBarDelegate>

@end

MainTab.m:

- (void)viewDidLoad
  {
   [super viewDidLoad];

   NSLog(@"this class is loaded");
   self.tabBarController.delegate = (id)self;
   [self setDelegate:self];
 }


 -(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
 {
  NSLog(@"changing tab");
   if ([viewController isKindOfClass:[UINavigationController class]]) {
     [(UINavigationController*)viewController popToRootViewControllerAnimated:YES];
   }
 }

解決しました!コードで投稿を編集します

ありがとう!

4

1 に答える 1

1

UITabBarController のデリゲートを設定し、次のデリゲート メソッドを実装します。

-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
   if ([viewController isKindOfClass:[UINavigationController class]]) {
     [(UINavigationController*)viewController popToRootViewControllerAnimated:YES];
   }
}
于 2012-09-20T17:31:16.153 に答える