2017-06-11 19 views
0

我是新來的在Xcode中繼續,並且無法理解UITabbar的工作方式。如何通過segue單擊UITabBar時更改視圖?

enter image description here

只要從本質上講,我留在第一個選項卡「福利」之內,我應該可以看到三個菜單項。每個菜單項應顯示不同的視圖。

我有點失落,我可以根據菜單項選擇加載不同的視圖。理論上,我可以用類似的菜單欄創建另外兩個視圖,如「福利」。當我在菜單欄中點擊時,我會將視圖轉移到這些視圖。

但我不知道如何通過賽格達到這一點。建議將不勝感激。

感謝

+0

爲什麼不直接使用視圖內containerViews並設置要首先表明,當視圖看起來像'view.bringSubview的一個(toFront:preferredFirstView)',並將其餘部分像'view.sendSubview(toBack:otherViews)'一樣發送到後面,然後當這些按鈕被選中時,將它們逆轉,但是它們是需要的。 – CarpenterBlood

+0

有趣的想法。我仍然可以在IB中分別設計每個視圖,並以這種方式將它們加載到可見視圖中......不覺得這是實現此目的的官方方式,但仍然是一種好方法。你能告訴我一些代碼作爲答案嗎? – Houman

+0

添加了答案,並且是每個containerView都有一個嵌入式ViewController,您可以爲其創建一個全新的ViewController類。我個人比較喜歡這一個標籤欄控制器,因爲我喜歡根據視圖的內容設置所有按鈕的顏色,並且它總是返回nil與tabbarController – CarpenterBlood

回答

0

添加ContainerViews到視圖中的單個 選項卡中。爲每個containerView製作@IBOutlets。然後將您的首選視圖設置爲可見,如下所示。

override func viewDidLoad() { 
    super.viewDidLoad() 
    view.bringSubview(toFront: preferredView) 
} 

添加您的按鈕操作的方法和它們內部反向各地然而它們可能需要像這樣所有的意見。

@IBAction func otherViewAction(_ sender: Any) { 
    view.bringSubview(toFront: otherView) 
    view.sendSubview(toBack: preferredView) 
    //do anything else you may need to do when the view is switched 
} 

enter image description here

這是一個我一直在努力

+0

對不起,我不明白這應該如何工作。我可以將容器視圖的IBOutlet添加到視圖控制器。但是,我如何加載視圖? – Houman

+0

當帶有嵌套containerViews的ViewController加載時,視圖會自動加載。具有嵌套containerViews的ViewController類是您創建containerView @IBOutlets的位置,並且您可以在此類中根據首選項顯示/隱藏每個視圖。您可以通過爲每個嵌入式ViewController創建自定義ViewController類來進一步自定義它 – CarpenterBlood