点击tabBar时转到rootView

piy*_*ush 4 iphone xcode objective-c uitabbarcontroller ios

我使用基于视图的应用程序,并以编程方式生成TabBar.问题是:

我有一个Iphone应用程序,其中我有2个tabitems与tabbarcontroller.Inside tabbarcontroller每个viewcontroller是一个导航控制器.当选择第二个选项卡我有一个视图控制器.当选择一个按钮,我正在推动另一个视图控制器到self.navigation controller.并且在那个viewcontroller中我正在推动并且去那样.但是问题是当我再次选择tabitem时,pushviewcotrooller会显示在那里.但是当我选择选项卡时,我再次需要rootview

我在AppDelegate.m中的代码是:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

 UINavigationController *nc1;
    nc1 = [[UINavigationController alloc] init];

UIViewController *viewController1 = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    nc1.viewControllers = [NSArray arrayWithObjects:viewController1, nil];





    UINavigationController *nc2;
    nc2 = [[UINavigationController alloc] init];

 UIViewController *viewController2 = [[[secondview alloc] initWithNibName:@"secondview" bundle:nil] autorelease];
    nc2.viewControllers = [NSArray arrayWithObjects:viewController2, nil];


    self.tabBarController = [[[UITabBarController alloc] init] autorelease];
   self.tabBarController.viewControllers = [NSArray arrayWithObjects:nc1,nc2,nil];
  self.window.rootViewController=self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

Mau*_*lik 12

也许你正在寻找这个:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{       
    int tabitem = tabBarController.selectedIndex;
    [[tabBarController.viewControllers objectAtIndex:tabitem] popToRootViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)