2016-08-13 89 views
1

我想有三個VC(A,B,C看圖片)。我希望每個VC都有三個相同的按鈕。當用戶按下左鍵時,它將顯示一個VC,當按下中央按鈕時 - 「B」VC將顯示,並與最後一個相同。另外我不需要視圖控制器來創建每個按鈕的按下,他們必須保存它們的狀態。複製UITabBarController邏輯與默認按鈕

相同的功能有UITabBarController,但我不知道如何用按鈕實現它。

有人可以幫我解決我的問題,或者顯示正確的方法來實現這個目標嗎?

picture

+0

只需創建3點不同的意見,然後顯示視圖與按鈕相關的和隱藏其他視圖 –

+1

你想在代碼或故事板中執行此操作? –

+0

@DharmeshKheni如果其中一個視圖必須被捕獲攝像頭輸出?它會按需要工作而不會出現一些問題?而在另一個視圖上,我需要導航和狀態欄? – mikle94

回答

1

可以按如下方式實現它:

  1. 添加在父控制器的底部的三個按鈕。
  2. 添加三個容器視圖,並使其各自的單獨的類,以便您的代碼是模塊化的。確保所有容器的高度和寬度相同,並覆蓋完整的視圖,並將按鈕留在底部。 (容器視圖使用故事板很容易管理)
  3. 現在爲所有三個容器視圖製作三個插座,併爲所有三個按鈕分別製作三個操作。
  4. 開啓按鈕隱藏您不想顯示的兩個容器視圖,並取消隱藏您想要看到的視圖。

有了這個,你可以得到Tab Bar Controller的功能。 PS:你不應該使用這種方法,而應該在需要的地方使用標籤欄控制器。

+0

關於您的評論,如果我從我的客戶那裏得到了這三個按鈕看起來不像默認UITabBar的設計,該怎麼辦?我還應該做什麼? – mikle94

+0

您是客戶聘請的iOS專家,因此您應該告訴客戶推薦的方法和應用程序的良好體系結構。你試圖實現的是一種解決方法,但不是iOS架構。你應該告訴你的客戶蘋果推薦的方式,並向他展示蘋果使用標籤欄開發的應用程序的例子。 – Harsh

2

試試這個辦法:

  1. 在主視圖中,添加三個重疊的容器的觀點。
  2. 將按鈕添加到主視圖以在視圖之間切換(通過將它們放在前面)。
  3. 不管你想要配置viewControllers。如果需要,將它們嵌入NavigationController
  4. @IBOutlets添加到容器視圖。
  5. @IBAction每個按鈕,把相應的視圖來front`

simulated tab view

class ViewController: UIViewController { 

    @IBOutlet weak var containerA: UIView! 
    @IBOutlet weak var containerB: UIView! 
    @IBOutlet weak var containerC: UIView! 

    @IBAction func pressA(sender: UIButton) { 
     view.bringSubviewToFront(containerA) 
    } 

    @IBAction func pressB(sender: UIButton) { 
     view.bringSubviewToFront(containerB) 
    } 

    @IBAction func pressC(sender: UIButton) { 
     view.bringSubviewToFront(containerC) 
    } 
}