【发布时间】:2025-12-29 08:25:06
【问题描述】:
我在试图通过容器视图在一个屏幕上显示的两个视图控制器之间传递数据时遇到了麻烦。
下面的最小示例 - 顶视图 (TopVC) 有一个 textInput 字段。当我按下按钮时,我希望底部视图(BottomVC)上的标签显示输入的文本。此外,我希望它向 TopVC 传递一条消息,并使用消息“成功联系底部 VC”更新 topVC 标签
故事板设置
我现在基本上不知道如何相互引用视图控制器。
class TopViewController: UIViewController {
@IBOutlet weak var textInput: UITextField!
@IBOutlet weak var textOutput: UILabel!
@IBAction func go(_ sender: UIButton) {
// ???????????
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.blue
}
func callMeBaby(greeting: String) {
textOutput.text = greeting
}
}
在 ????? 占位符中,我想放置一些基本上可以正常工作的内容,例如 BottomVC.test(textInput.text, callmebaby) - 但显然我需要添加一些额外的代码来'介绍'这两个 ViewController,我不知道该怎么办。
class BottomViewController: UIViewController {
@IBOutlet weak var textLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.yellow
}
func test(input: String, completion: (String) -> Void) {
textLabel.text = input
completion("Successfully contacted bottom VC")
}
}
【问题讨论】:
标签: ios swift swift3 uiviewcontroller closures