如何在iphone中从一个UITabbarview控制器切换到另一个UITabbarViewController?

时间:2011-10-03 10:25:48

标签: iphone uitabbar

  1. 我有一个带有3个tabbar项目和导航栏的UITabbarViewController。

  2. 现在,当我按下第一项tabbar项目时,视图中会有一个按钮。

  3. 现在我的问题是,当我按下按钮,然后它将转到另一个tabbarview控制器,它还有3个tabbar项目。我怎样才能做到这一点?请帮帮我,对我来说非常紧急。

    UITabbarViewController [带导航栏] ---> tabaritem [1] + tabaritem [2] + tabaritem [3]

    tabaritem [1] viewcontroller按下按钮,当我按下按钮时,另一个UITabbarcontroller将显示在屏幕上。

    UITabbarcontroller [2] [带导航栏] ---> tabaritem [1] + tabaritem [2] + tabaritem [3]

    注意:我是iphone应用程序开发的新手,所以请帮助我。

    还有一件事是我不能将表视图用于两个tabbarcontroller,因为我的第一个tabbar的第一个tabbar项目是登录页面,因此当用户能够登录时,他将看到第二个tabbarviewcontroller。

2 个答案:

答案 0 :(得分:1)

根据苹果观点,实现此目的的唯一方法是在模态中显示其中一个标签栏。

好像你正在使用第一个Tabbarcontroller作为Login控制器。在这种情况下,您将其作为Modalview而不是其他(普通)Viewcontroller。在应用程序启动时,您加载主选项卡控制器 然后检查用户是否已登录并显示模型记录控制器(再次显示Tabbar控制器),如果不是。
一旦用户成功登录,您只需关闭模态,瞧,您可以看到“主”标签控制器。

[edit:]这是(Pseuod)代码中的一个简短示例:
MainViewController.m:

-(void) viewWillAppear:(BOOL)anmiated 
 {  
   UIApplicationDelegate* appDelegate = [[UIApplication sharedApplication] delegate];
   if (!appDelegate.isLoggedIn) {
      appDelegate.loginController = [[UIViewController alloc ] initFromNib:@"login"];
      [self presentModalViewController:appDelegate.loginController animated:NO];
   }

 }
在LoginController中

- (iBAction) loginClicked
  {
    [appDelegate.mainViewController dismissModalViewControllerAnimated:YES];
  }

这显然假设您在appdelegate中有对视图控制器的引用。

答案 1 :(得分:1)

为什么不为每种模式移除和添加标签栏项目,而不是交换整个控制器?当您处于第一个模式时,显示标签栏项目1,2和3.如果有人点击一个,则删除所有这些项目,然后添加项目4,5和6.使用项目上的标记来跟踪它们。 / p>