我有一個標籤欄控制器,它有兩個項目連接到兩個視圖控制器(說A &乙)現在我想添加第三個視圖控制器(說C)。但我不想在標籤視圖中添加第三個圖標。當用戶選擇第二個圖標時,它應該呈現B或C,具體取決於用戶是否已登錄。如何將多個視圖連接到swift中的單個標籤欄項目?
回答
只要創建爲要顯示根據上下文不同意見的標籤欄項目的另一個視圖控制器。我們稱之爲RouterViewController
。然後將所需的信息傳遞給RouterViewController
以決定將哪個視圖控制器顯示出來,並在那裏實現必要的邏輯。
從RouterViewController
你現在可以呈現你想要的任何視圖控制器(沒有動畫)。有很多方法可以做到這一點,例如:
- 讓您
RouterViewController
的UINavigationController
一個子類,並動態設置其屬性rootViewController
。 - 使您的
RouterViewController
a 容器視圖控制器並相應地嵌入所需的視圖控制器。 - 從您的
RouterViewController
以模態(無動畫)呈現視圖控制器。 (因爲呈現模式視圖控制器是用於其他目的,我個人會打消這個選項。)
等
謝謝。我正在嘗試你建議的第一種方式。所以我添加了一個導航控制器作爲選項卡控制器的第二項。然後我無法理解在哪裏設置導航控制器的rootViewController。它在tabBarController的viewDidLoad中,以及如何設置它?請幫幫我。 –
我懷疑你正在使用故事板?如果是:1.將導航控制器添加爲選項卡欄控制器的第二個選項卡。 2.創建「UINavigationController」的子類並將其稱爲「RouterViewController」。 3.選擇故事板中的導航控制器,並將其類設置爲「RouterViewController」。 4.在'RouterViewController'的'viewDidLoad()'方法中設置這樣的根視圖控制器:'viewControllers = [theViewControllerYouWantToShow]'。 – Mischa
這可能是一個非常愚蠢的問題。對不起,我對ios很陌生。我按照你的說法做了,我如何通過哪種類型的segue連接UINavigationController和UIController(B&C)。 我做了下面的遊戲 if(...){ viewControllers = [FirstViewController()] }否則{ viewControllers = [SecondViewController()] } 但是當我點擊第二個標籤的圖標,它加載與黑屏 導航UI我已附加在故事板圖問題 –
- 1. 如何切換到「更多」視圖中的標籤欄項目?
- 2. 對於同一個標籤欄項目的多個視圖
- 3. 如何將標籤欄項連接到某個操作?
- 4. 將第一個視圖連接到標籤欄控制器
- 5. 如何從單個視圖切換到標籤欄視圖
- 6. Swift ios將多個項目連接到同一個IBOutlet
- 7. 如何在swift中的標籤欄項目中設置圖像?
- 8. 如何將多個圖標添加到單個TreeView項目?
- 9. MySQL,在單個查詢中將一個項目連接到多個項目
- 10. 如何將視圖分配給標籤欄項目?
- 11. 如何將兩個不同的標籤欄圖標連接到與故事板相同的視圖控制器?
- 12. Swift - 如何將標籤欄和導航欄添加到單個視圖控制器?
- 13. iOS標籤欄,如何seque到一個新的標籤欄視圖
- 14. 單個標籤多個視圖
- 15. 單一視圖中標籤欄視圖
- 16. 如何自定義單個標籤欄項目的外觀?
- 17. 如何將主視圖控制器添加到不是標籤欄項目之一的標籤欄控制器?
- 18. 如何更改iOS Swift中的默認標籤欄項目?
- 19. 沒有連接到VIEW的標籤欄項目
- 20. 如何在swift中製作多個顏色標籤欄3
- 21. 單個搜索欄過濾項目在離子2中的多個標籤2
- 22. iOS的自定義標籤欄項目個子比標籤欄
- 23. 如何在swift ios中刷新標籤欄項目
- 24. 將三個視圖連接到單個導航控制器(XCode 7,Swift 2)
- 25. 將多個項目鏈接到MySQL中的單個項目的最佳方式
- 26. 如何在選項卡欄中爲單個項目選擇2個圖標?
- 27. 如何將視圖控制器和.xib文件鏈接到xcode中的標籤欄項目4
- 28. 標籤欄上的圖標項目
- 29. 故事板:如何將單個視圖鏈接到多個容器視圖?
- 30. 連接多個UI5項目
如果有人反對投票至少告訴我你爲什麼反對投票? –
你可以添加你迄今爲止所做的事嗎? – Rahul
@IqbalInzamam:當人們在尋求幫助之前,似乎還沒有試圖想出自己的解決方案時,問題通常會在Stackoverflow上被拒絕。你應該嘗試描述你的想法,以便在你的問題中採用一種可能的方法,並特別詢問爲什麼這種方法不起作用或者有更好的選擇。 – Mischa