我爲項目實現了自定義UITabBar解決方案。從本質上講,如果有超過5個項目,我使用scrollView,將允許用戶滾動其他標籤項目,並抑制更多的按鈕。在Weather Channel應用程序中可以看到類似的外觀和感覺。抑制自定義UITabBarController中的更多導航控制器
每個標籤欄項目對應一個管理每個標籤的視圖堆棧的UINavigationController。我遇到的問題是當我有超過5個選項卡項目時,從選項卡5開始並未正確維護導航堆棧。似乎moreNavigationController每次返回到該選項卡時都會導致導航堆棧死機,並且您將再次進入初始頁面。
我已經覆蓋了setSelectedViewController方法如下:
- (void) setSelectedViewController:(UIViewController *)selectedViewController {
[super setSelectedViewController:selectedViewController];
if ([self.moreNavigationController.viewControllers count] > 1) {
self.moreNavigationController.viewControllers = [[NSArray alloc] initWithObjects:self.moreNavigationController.visibleViewController, nil];
}
}
該代碼將刪除左側導航欄按鈕更多功能,但它並沒有解決保持導航堆棧的問題。所有其他標籤工作正常。我可以遍歷幾個視圖,並在離開並返回到該選項卡後維護堆棧。我明白這是一個複雜的問題,所以請讓我知道,如果有一些地方我可以提供清晰。謝謝!
我做了相當不同的事情,但是使用了您的概念,只放置第一個ViewController並動態加載所有其他的。做得很好! – Marquis103