我已經嘗試過以下大量示例以及SO上的其他questions。正在添加視圖控制器,但它將視圖容器放入視圖而不是視圖容器。這是我的意思。將視圖控制器添加到容器視圖覆蓋視圖
我有主視圖控制器和容器視圖上的標籤欄。當點擊標籤欄上的項目時,應該抓住控制器並將其加載到容器視圖中。這是我如何做的代碼。
@IBOutlet weak var tabBar: UITabBar!
@IBOutlet weak var containerView: UIView!
var currentViewController: UIViewController!
var radarViewController: UIViewController!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let storyboard = self.storyboard
let currentViewController = storyboard?.instantiateViewController(withIdentifier: "WeatherCurrentViewController") as! WeatherCurrentViewController
self.currentViewController = UINavigationController(rootViewController: currentViewController)
let radarViewController = storyboard?.instantiateViewController(withIdentifier: "WeatherRadarViewController") as! WeatherRadarViewController
self.radarViewController = UINavigationController(rootViewController: radarViewController)
}
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if item.tag == 1 {
containerView.addSubview(currentViewController!.view)
currentViewController.didMove(toParentViewController: self)
}
if item.tag == 2 {
containerView.addSubview(radarViewController!.view)
radarViewController.didMove(toParentViewController: self)
}
}
這是Swift 3.我不知道我做錯了什麼。任何幫助表示讚賞。
更新
雖然我從來沒有得到的視圖切換到許多變化/嘗試後編程工作,我沒有找到使用塞格斯多視圖容器的另一種方式(here,不是理想的,因爲它佔用了更多的內存但它的工作原理。
你能解釋一下這進一步「它放置查看容器到視圖中而不是視圖控制器。' – Frankie
@Frankie我看起來不會把它放在視圖容器中,但父視圖 –