我想創建一個導航爲我的iPhone「選項卡式應用程序」,這將包括(顯然)UITabBarController
和SWRevealViewController
揭示側菜單。隱藏UITabBarController的tabBarItem,雖然能夠顯示相關的視圖然而
所有在我的應用程序觀點必須有兩個和UITabBarController
顯示的UINavigationBar
然而,這出現在左側的菜單鏈接(通過SWRevealViewController
處理)不得出現在UITabBarController
。
我左側的菜單鏈接以這種方式處理:
import UIKit
class MenuTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.clearsSelectionOnViewWillAppear = false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedIndex = (indexPath as NSIndexPath).row + 1 // hardcoded for time being
let tabBarController = revealViewController().frontViewController as! UITabBarController
let navController = tabBarController.viewControllers![selectedIndex] as! UINavigationController
navController.popToRootViewController(animated: true)
tabBarController.selectedIndex = selectedIndex
revealViewController().pushFrontViewController(tabBarController, animated: false)
}
}
現在,我試圖刪除的鏈接的,我不希望在我的UITabBarController
顯示如下意見之一:
import UIKit
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let index = 2 // hardcoded for time being
viewControllers?.remove(at: index)
}
}
,但如果我點擊現在相關的左側菜單中的鏈接,我得到一個NSRangeException index 2 beyond bounds [0 .. 1]
錯誤(當然,因爲我刪除從UITabBarController
特定tabBarItem
)。
我的問題是:如何從UITabBarController
「隱藏」該項目,但仍然可以從我的側邊菜單中引用它(並打開它)?
所以......你有''A' B''C'選項卡的標籤欄控制器......當前標籤是'B' ......你也有一個菜單列出'D''E''F''G' ...用戶點擊菜單上的'E' ...應該發生什麼?當前標籤'B'由* E替換*或者「A-B-C」標籤變成「A-B-C-E」? – DonMag
假設我有'A'' B'''''''''''觀點。我只想在我的側欄菜單中顯示'A''B'' C'和'D'' E'。但是,'D'和'E'應該在打開TabBar後纔可見。在我的故事板中,所有視圖都與我的TabBar控制器相連,這樣TabBar就可以看到它們,也許這是第一位的錯誤方法? – errata