我的标签栏控制器有4个标签,我在VC1中有6个文本字段,想要使用输入的数据在VC2,VC3和VC中显示标签。 VC4。我已经读过有关向TabBarController子类添加数据并在VC的其余部分中使用它但仍然坚持实现的内容。我是一个绝对的初学者,任何代码或代码实现的链接都会很棒。
答案 0 :(得分:3)
试试这个:
我创建了一个UITabBarController
,其中包含2个子控件Tab1ViewController
和Tab2ViewController
。
故事板的屏幕截图:
<强>代码:强>
class Tab1ViewController: UIViewController
{
@IBOutlet weak var testTextField: UITextField!
override func viewDidLoad()
{
super.viewDidLoad()
}
}
class Tab2ViewController: UIViewController
{
@IBOutlet weak var testLabel: UILabel!
override func viewDidLoad()
{
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool)
{
super.viewWillAppear(animated)
let tab1Controller = self.tabBarController?.viewControllers?.first as! Tab1ViewController
self.testLabel.text = tab1Controller.testTextField.text
}
}
同样,您可以创建4个制表符和其他文本字段。
有关详情,请参阅:How do I pass data from a tab bar controller to one of its tabs?
答案 1 :(得分:0)
您可以使用NotificationCenter
通知应用程序中有关更改的任何内容。例如,您可以让视图控制器侦听text
的{{1}}属性发生更改时发生的更改,然后您可以在该视图控制器中执行操作。
例如,如果第一个视图控制器中有六个文本字段,则可以使最后一个视图控制器侦听第一个视图控制器中文本字段中UITextField
属性更改时发布的通知。然后,您的上一个视图控制器可以在检测到更改时执行您需要执行的操作。
Here是一个很好地解释这个问题的教程。