我有一个名为DashBoardViewController的UIViewController充当UITabBar的代理。在它的xib中,我放置了一个带有3个UITabBarItem的UITabBar。UITabBar UIView不扩展到完整
每个项目激活不同的视图控制器,我们姑且称之为ViewController1,ViewController2,ViewController3
DashBoardViewController是为了显示ViewController1并选择加载第一条,所以在我initWithNibName我有什么如下:
...
ViewController1* vc = [[ViewController1 alloc] initWithNibName:@"ViewController1" bundle:nil];
[self.view addSubview:vc.view];
self.currentViewController = vc;
...
我实现有得UITabBarDelegate如下:
if (item == viewController1Item) {
ViewController2 *vc2 = [self.childrenControllers objectAtIndex:1];
[self.currentViewController.view removeFromSuperview];
[self.view addSubview:vc2.view];
self.currentViewController = vc2;
} ...
问题 第一个UITabBarItem中的View Controller始终按预期工作,将其扩展到w视图的完整大小。 但是,在第二个和以后的选项卡中,这不会发生:视图不会扩展。这显示了,例如,我是否将选项卡与ViewController2 XIB中的底部对齐:在UITabBarItem中查看时,这不会位于底部。
注意 请注意,这是不相关的厦门国际银行:如果我颠倒ViewController1和ViewController2,这将是ViewController1的一个失败的延伸。它与UITabBarItem有关。
理念 可能,这取决于由当我打电话了DashBoardViewController的initWithNibName我addSubview的方式。但我找不到解释这一点的方法。
其他详情 所有的XIB都设置为“Size = none”。
这里的(部分)复杂是我的DashBoardViewController驻留在UINavigationController中,我假设由于我需要在单个Tab中共享一些视图,所以最好将它们放在DashBoardViewController中。 – puntofisso
我按照你的建议使用了一个标准的UITabBarController,并在需要时显示子视图为模态。实际上,这种方式看起来好多了。谢谢你的帮助! – puntofisso