我已经找到了很多关于这个问题的变化,但只是想要一些清晰度,因为我似乎无法让我的工作。
我有一个TabBarController(TBC),它包含几个UIViewController
s(每个标签)。在其中一个UIViewController
s(mainMenu)中,我尝试将另一个UIViewController
(game1)添加为子视图:
[self.view addSubview:game1.view];
现在问题在于它需要TBC,所以我尝试使用以下方法隐藏它:
self.hidesBottomBarWhenPushed = YES; //< (In the game1.m ViewDidLoad method)
和
game1.hidesBottomBarWhenPushed = YES; //< (In the mainMenu.m after I initialise game1)
我猜这是因为菜单从未被推送,因为我使用的是addSubview方法?
最初我使用的是presentModalViewController
方法,但帧被传递到新视图,从而导致UI布局被偏移/放大。
任何人都可以帮我解决这个问题吗,我似乎无法隐藏TBC并且我的想法已经用完了。
先谢谢Elliott
答案 0 :(得分:0)
hidesBottomBarWhenPushed
堆栈时, UINavigationController
才有意义。您对addSubview:
所做的是,您只是将game1
的视图添加到当前视图控制器的视图中。这根本不对,UIKit根本不会处理它。
您应该将UINavigationController
作为选项卡的视图控制器,然后使用以下内容推送game1
视图控制器:
[self.navigationController pushViewController:game1 animated:YES];
而不是addSubview:
。然后,这将与hidesBottomBarWhenPushed
一起使用。但请注意,最好在hidesBottomBarWhenPushed
方法的init
方法中设置game1
,而不是viewDidLoad
。