的TabBar項目我在我的UITabBarController 5 UIViewController的,但我需要他們的表演4的TabBar所以我想去年的TabBar項目從的UITabBarController刪除。如何刪除SWIFT 3
self.tabBarController?.tabBar.items?.removeLast()
但我得到這個錯誤。
直接修改的標籤欄控制器管理的標籤欄是不是 允許
那麼,怎樣才能從我刪除的TabBar最後的TabBar項目?
的TabBar項目我在我的UITabBarController 5 UIViewController的,但我需要他們的表演4的TabBar所以我想去年的TabBar項目從的UITabBarController刪除。如何刪除SWIFT 3
self.tabBarController?.tabBar.items?.removeLast()
但我得到這個錯誤。
直接修改的標籤欄控制器管理的標籤欄是不是 允許
那麼,怎樣才能從我刪除的TabBar最後的TabBar項目?
你應該操縱viewcontrollers中的TabBar控制器的陣列。 試試這個。
if let tabBarController = self.tabBarController {
let indexToRemove = 4
if indexToRemove < tabBarController.viewControllers?.count {
var viewControllers = tabBarController.viewControllers
viewControllers?.remove(at: indexToRemove)
tabBarController.viewControllers = viewControllers
}
}
而不是複製,粘貼[這個答案](https://stackoverflow.com/a/28384731/5501940),你應該評論它... –
我想,但我不具備足夠的代表。 –
對於從tabBarController?
刪除視圖控制器,你應該簡單地實現:
tabBarController?.viewControllers?.removeLast()
假設您刪除了最後一個控制器(標籤)。
由選項卡欄 界面中顯示的根視圖控制器的數組。
很明顯,你可以刪除和控制,例如,用於去除第一控制器:
tabBarController?.viewControllers?.remove(at: 0)
更新:
首先,我需要開放第五視圖 - 控制我會不 的TabBar表現出來。用戶不能去第五個標籤欄。只有我可以導航用戶。因此造成的,我試圖做到這一點 。
爲了實現這一點,你應該做的是讓你的故事板被構造爲:
考慮到第一個視圖控制器(應該呈現的TabBar控制器中的)你不想讓它出現在的TabBar視圖控制器。
我只需要從tabbar –
刪除最後一項不viewcontroller請詳細說明,如果從tabbar的最後一項已被刪除,那麼您如何導航到其viewcontroller?默認情況下,從viewControllers數組中刪除一個視圖控制器應該自動刪除它在tabbar中的項目。 –
我不會再次瀏覽此視圖控制器。所以我只需要從tabbar刪除最後一項不viewcontroller –
要移除標籤欄項目,其中你知道的參考或位置,你可以這樣來做:
tabBarController?.viewControllers?.remove(at: 4)
請注意,如果'tabBarController?.viewControllers?'包含少於5個視圖控制器,應用程序將會崩潰,那麼在沒有任何檢查的情況下實現這種操作是有點危險的。 –
正如我所說,如果你知道你正在刪除的特定控制器的引用,你可以使用它。 –
後,我看了您的評論認爲答案,我窗臺不明白你想要什麼。 –