【发布时间】:2015-02-07 05:32:44
【问题描述】:
我在 container2View 上有一个 UIImageView (img) 作为 IBOutlet。如何更改 img.image 并从其他容器(containerView)刷新视图?
我们必须使用委托
主控制器
class mainController: UIViewController, containerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
switch segue.identifier! {
case "container":
var view = segue.destinationViewController as containerController
view.delegate = self
break
default: break
}
}
func change(name: String) {
println(name) //prints the name
container2Controller().img.image = UIImage(named: "name") //not seems to work
}
}
容器控制器
protocol containerDelegate {
func change(name: String)
}
class containerController: UIViewController {
var delegate: containerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func click() {
delegate?.change("hi")
}
}
container2Controller
class container2Controller: UIViewController, containerDelegate {
@IBOutlet var img: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func change(name: String){
self.img.image = UIImage(named: name)
}
}
【问题讨论】:
标签: swift uiviewcontroller delegates segue uicontainerview