我对如何正确使用容器视图感到有点困惑,我会尽力解释它。
我有一个具有动画功能的主视图控制器。
import UIKit
class MainViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate {
// Run view setups
override func viewDidLoad() {
super.viewDidLoad()
}
func closePicker(){
self.view.layoutIfNeeded();
UIView.animateWithDuration(0.5, animations: {
self.countryPickerConst.constant = -206;
self.view.layoutIfNeeded();
})
}
}
在界面构建器中,我添加了一个带有新视图控制器的容器视图,其中包含如下按钮:
import UIKit
class ContainerViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func runAnimation(sender: UIButton) {
//I want to call the function in my other view controller
}
}
在动作runAnimation中我想调用MainViewController中的函数。如果我只是创建一个MainViewController的实例并调用该函数,它似乎失去了它的“自我”相关性。
如果有人能够向我解释做这样的事情的最佳做法那就太棒了。
由于
答案 0 :(得分:1)
根据您的解释,MainViewController
是ContainerViewController
的父母,因此您可以从closePicker
访问ContainerViewController
:
@IBAction func runAnimation(sender: UIButton) {
(self.parentViewController as! MainViewController).closePicker()
}