问题描述
我有第一个具有UILabel的viewController和第二个具有UItextField和“添加”按钮的ViewController。它们嵌入在选项卡中。单击添加按钮到第一个视图控制器的uilabel时,我想从文本字段传递数据。
ContentProvider
第一视图控制器是
protocol SendDelagate
{
func setData(string:String)
}
第二个ViewController是
class ViewController: UIViewController,SendDelagate{
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let vc = SecondViewController()
vc.delegates = self
}
func setData(string: String) {
label.text = string
}
}
解决方法
SecondViewController嵌入在UITabbarController中吗?
您可以通过TabbarController找到SecondViewController实例
class ViewController: UIViewController,SendDelagate {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
if let secondViewController = tabBarController?.viewControllers?.first(where: { $0 is SecondViewController }) as? SecondViewController {
secondViewController.delegates = self
}
}
func setData(string: String) {
label.text = string
}
}
,
您可以使用“用户默认设置”。因此,您可以使用“添加”按钮将其保存到“用户默认设置”中,并在另一视图的viewDidLoad
上进行加载。