【问题标题】:How can I switch from one UITabbarview controller to another UITabbarViewController in iPhone?如何在 iPhone 中从一个 Tabbarview 控制器切换到另一个 TabbarViewController?
【发布时间】:2011-10-03 10:25:47
【问题描述】:

我有一个带有导航栏的 3 个标签栏项目的 UITabbarViewController。当我按下我的第一项标签栏项目时,视图中会出现一个按钮。

现在我的问题是我什么时候按下按钮,然后它会转到另一个标签栏视图控制器,它也有 3 个标签栏项目。我该怎么做?

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

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

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

我是 iPhone 应用程序开发的新手。

还有一件事是我不能对两个 tabbarcontroller 使用表格视图,因为我的第一个 tabbar 的第一个 tabbar 项正在登录页面,所以当用户能够登录时,他将看到第二个 tabbarviewcontroller。

【问题讨论】:

  • @Akshay:我已经制作了我的第一个 tabbarviewcontroller 和第一个 tabbar 项,通过登录按钮进入登录页面。现在,当我按下该按钮时,它将转到另一个包含 3 个不同标签栏项目的标签栏控制器。如果你可以请给我代码..

标签: iphone uitabbar


【解决方案1】:

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

【讨论】:

  • 非常感谢 Owen Hartnett。效果很好。再次感谢
【解决方案2】:

根据苹果的观点,这样做的唯一方法是在模式中显示一个标签栏。

您似乎正在使用第一个 Tabbarcontroller 作为登录控制器。在这种情况下,您将把它作为模态视图而不是其他(正常)视图控制器。在应用程序启动时,您加载主选项卡控制器。
然后,您检查用户是否已登录,如果未登录,则显示模型记录控制器(又是一个 Tabbar 控制器)。
用户成功登录后,您只需关闭 Modal,瞧,您就可以看到“主”选项卡控制器了。

[edit:] 这是(伪)代码中的一个简短示例:
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];
   }

 }

在登录控制器中

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

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

【讨论】:

  • 首先感谢您的回答。我明白您想说什么,但是如果您给我一个例子,那将非常有帮助。因为我以前没有做过这样的事情。所以如果你用一个例子给我你的技术,你会很高兴的。
  • 感谢您的帮助。现在让我试试这个。:)
猜你喜欢
  • 2019-11-15
  • 2015-03-23
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
相关资源
最近更新 更多