我有一個viewController
包含segmentedControl
。我有一個位於segmentedControl
的VCA和VCB。當我點擊第二段VCB出現。現在我正在從VCB推送另一個ViewController。但是從viewController返回時,正在調用VCA的viewDidAppear
。這對我來說很奇怪。因爲用戶在VCB上,所以爲什麼調用VCA的viewWillAppear
和viewDidAppear
?這裏有一個圖來解釋更viewDidAppear被稱爲strangley
這是怎麼了加入viewControllers到segmentedControl
func switchToViewController(viewController: UIViewController, selectedIndex: Int) {
viewController.removeFromParentViewController()
viewController.view.removeFromSuperview()
addChildViewController(viewController)
viewController.view.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(viewController.view)
// Setting constraints of the container view
NSLayoutConstraint.activate([
viewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0),
viewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0),
viewController.view.topAnchor.constraint(equalTo: view.topAnchor, constant: 50),
viewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0)
])
viewController.didMove(toParentViewController: self)
}
我只是無法理解的行爲。所以請指導我。
是包含分段控制和VCA相同的viewcontroller嗎? – Priyal
不,它們不一樣。包含segmentedControl的viewController是一個不同的VC讓我們稱之爲VCSegmentedControl –
爲什麼你要刪除'viewController'並添加相同的'viewController'? –