我有一個名爲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