[英]View controllers inside tab bar controller not auto-resizing on rotation
[英]How to put tab bar controllers inside of view controllers and not the delegate?
我有一个非常基本的iPhone应用程序,其中发生以下步骤。
我真的不确定游戏如何在iPhone应用程序中做到这一点,但是以上是我的最佳猜测。
我希望标签栏控制器仅出现在RootViewController内,但是不管我做什么,我都无法使标签栏控制器出现在此视图内。
但是,我可以使普通标签栏出现。 但这不是选项卡栏控制器,我需要控制每个选项卡的功能(导航控制器,表控制器等)。
根据文档 ,使用选项卡栏控制器的多种方法之一是通过应用程序的主窗口。 但是它并没有说您是否可以在普通视图中使用它; 或确实如何。
我尝试了几次尝试,以使选项卡栏控制器显得无济于事。
例如,如果执行此操作,则在按钮内的GameRootViewController中;
-(IBAction) btnPress {
RootViewController *root = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
[self.view addSubview:root.tabBarController.view];
[root release];
}
什么也没出现。
如果我尝试正常的做法:
[self.view addSubview:root.view];
该视图出现,但我从未看到选项卡栏控制器。
这让我很困惑。
我可能在想游戏/应用程序可以做到这一点:
但我不确定。 我想澄清/了解我是否可以将标签栏控制器放在视图控制器中,还是只能在应用程序委托中使用它们?
首先,不要将控制器与视图混淆。 视图是UI的可见部分,控制器是幕后的不可见对象。 您不要将控制器放在视图内部或将控制器放在“其他”控制器“内部”。 取而代之的是,控制器存在于各种层次结构中,这些层次结构的结构决定了哪些视图何时何地出现。
您以非标准的方式使用标签栏(这可能会使用户感到困惑),但需要将标签栏控制器放在导航控制器内部,以便获得如下所示的层次结构:
navigationController (rootViewController)
-->TabBarController(secondController)
-->tabViewController1
-->tabViewController2
-->tabViewController3
因此,您的第一个可见视图是由navigationController的rootController控制的按钮视图。 选择一个按钮后,它将TabViewController推入导航堆栈,从而使该选项卡进入默认选择的选项卡视图。 (请注意,您必须隐藏导航栏以使用户看不到导航堆栈。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.