【问题标题】:Move from view controller to tab bar controller从视图控制器移动到标签栏控制器
【发布时间】:2011-12-15 13:31:57
【问题描述】:

当您通过界面而不是以编程方式创建标签栏控制器时,您没有标签栏控制器类。在这种情况下,您如何从视图控制器移动到此选项卡栏控制器?

【问题讨论】:

  • 我不太明白这个问题...您想知道如何从子视图控制器的代码中访问标签栏控制器吗?
  • 没有。我有一个在标签栏控制器出现之前出现的视图控制器。所以基本上我想要的理想程序结构是视图控制器 -> 视图控制器 -> tabbarcontroller(它有两个子视图控制器)
  • 您在导航控制器中显示您的视图控制器?
  • 不。它只是一个视图控制器。基本上我想要的是一个启动画面,它是一个视图控制器,它以模态方式呈现一个查找当前位置的视图控制器,当单击此视图控制器中的按钮时,标签栏控制器应该出现,其中有一个列表视图控制器和地图视图控制器。我不确定这是公认的做法吗? - 但是可以为两个视图控制器使用导航控制器,但我读到不要在导航控制器中嵌入标签栏控制器
  • 是的,这就是我想指出的。如何实例化标签栏控制器并以模态方式显示启动画面(例如,没有动画,这样用户就不会注意到标签控制器)?然后在启动屏幕上显示位置选择器,当用户完成它时,您关闭两个显示选项卡控制器的模态控制器。

标签: ios iphone objective-c ios5 uitabbarcontroller


【解决方案1】:

首先制作tabbarcontroller,然后制作uiview控制器……比如……

NSMutableArray *listOfViewControllers = [[NSMutableArray alloc] init];

        tab1view = [[tab1viewcontroller alloc] initWithNibName:@"tab1viewcontroller" bundle:nil];
        [listOfViewControllers tab1view];
        [tab1view release];

        tab2view = [[tab2viewcontroller alloc] initWithNibName:@"tab2viewcontroller" bundle:nil];
        [listOfViewControllers tab2view];
        [tab2view release];

        [self.tabBarController setViewControllers:listOfViewControllers animated:YES];

我认为它会帮助你。

【讨论】:

    【解决方案2】:

    您可以先尝试创建标签栏控制器。然后以模态方式显示全屏初始屏幕(例如,没有动画,这样用户就不会注意到标签栏控制器)并关闭您呈现位置选择器的初始屏幕。用户完成后,您将关闭两个显示选项卡控制器的模态控制器。

    如果您需要根据从位置选择器获得的信息在标签栏控制器中设置视图控制器,您可以这样做,例如通过委托,即:

    1. 为初始屏幕和位置选择器实现委托
    2. 实例化标签栏控制器
    3. 显示启动画面,将标签栏控制器的当前 vc 设置为启动画面的代表
    4. 显示位置选择器,将其委托设置为相同的视图控制器(您将在初始屏幕中拥有句柄)
    5. 一旦用户关闭位置选择器,您将通知代理,它就能够从位置选择器收集所需的数据。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多