【发布时间】:2019-02-01 19:45:28
【问题描述】:
我刚开始使用 Swift,我可以解决这个问题,我不知道如何从 ViewController 运行 ViewController2 中的函数。
import UIKit
class Main: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func onButtonPressed(_ sender: Any) {
performSegue(withIdentifier: "newSegue", sender: self)
}
}
class ViewController: UIViewController {
let SecondViewController = ViewController2()
override func viewDidLoad() {
super.viewDidLoad()
SecondViewController.changeText()
// Do any additional setup after loading the view, typically from a nib.
}
}
class ViewController2: UIViewController {
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!
@IBOutlet weak var label4: UILabel!
@IBOutlet weak var label5: UILabel!
@IBOutlet weak var label6: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func changeText() {
label1.text = "hi"
label2.text = "how"
label3.text = "are"
label4.text = "you"
label5.text = "doing"
label6.text = "!"
}
}
【问题讨论】:
-
不允许这样调用任何函数。您需要使用委托或通知观察者。
-
看看通知或协议:(这篇文章的答案应该对你有帮助)stackoverflow.com/questions/51650475/…
-
ViewController2 是如何呈现的?是否在
ViewController内的容器视图中? -
@Paulw11 是的。
标签: ios swift xcode uilabel uicontainerview