【问题标题】:Segue to Tab Bar ControllerSegue 到标签栏控制器
【发布时间】:2012-04-24 04:50:05
【问题描述】:

我有这个问题:

我有一个包含 2 个部分的应用程序,第一部分是用户第一次打开应用程序时,会出现一个带有“你叫什么名字”的屏幕,然后他会跟随一个带有一些按钮的屏幕,它以一个表格视图,他可以在其中按下页脚中的按钮以转到应用程序的另一部分,该部分是具有 2 个按钮的视图控制器:1 - 返回第一个按钮屏幕(在你的名字之后),2 - 转到选项卡酒吧控制器。我的问题是:当我转到标签栏控制器 2 导航栏时出现 oO。我通过互联网阅读了我无法将标签栏控制器推送到导航堆栈中,这是真的吗?

那么我的 UI 的解决方案是什么?因为我希望用户能够返回到那个测试屏幕,但我也想使用这个标签栏控制器。

提前致谢!

【问题讨论】:

标签: objective-c ios user-interface uitabbarcontroller segue


【解决方案1】:

我通过互联网了解到我无法将标签栏控制器推送到导航堆栈中,这是真的吗?

是的,这是真的。

看看the documentation-[UINavigationController pushViewController:animated:],它说明了它作为参数的视图控制器:

此对象不能是标签栏控制器的实例,并且它不能已经在导航堆栈上。

(已添加重点。)

那么我的 UI 的解决方案是什么?

以不同的方式组织您的应用程序。一种方法是将选项卡控制器设为您的根控制器,并在应用程序首次启动时以模态方式呈现初始视图控制器。如果用户需要返回那里,请提供一个按钮或其他方式再次以模态方式显示初始视图控制器。或者只是将初始屏幕设置为另一个选项卡,以便用户可以随时返回。

【讨论】:

    【解决方案2】:

    我正在使用它来将标签控制器推送到导航控制器的顶部。只需在属性检查器上为您提供选项卡控制器或导航控制器的标识符。

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UITabBarController *tab=[storyboard  instantiateViewControllerWithIdentifier:@"tabController"];
    [self.navigationController presentViewController:tab animated:YES completion:nil];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      相关资源
      最近更新 更多