选择标签栏控制器

时间:2012-04-24 04:50:06

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

我有这个问题:

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

那么我的UI解决方案是什么?由于我希望用户能够返回该测试屏幕,但我也希望使用此标签栏控制器。

提前致谢!

2 个答案:

答案 0 :(得分:0)

  

我通过互联网读到我无法将标签栏控制器推入导航堆栈,是真的吗?

是的,这是真的。

请查看-[UINavigationController pushViewController:animated:] {{1}},其中说明了视图控制器作为参数:

  

此对象不能是标签栏控制器的实例,且它必须不在导航堆栈中。

(强调补充。)

  

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

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

答案 1 :(得分:0)

我正在使用它在导航控制器上推动一个Tab控制器。只需在属性检查器上为Tab Controller或Navigation Controller提供标识符。

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