我有一个pop Over View Controller来更改设置。它从UIPickerView
更新应用中的文本。它效果很好,但是当我通过视图控制器将POP解散时,文本标签不会刷新。当我向后返回并返回视图控制器时,标签更新。
在视图控制器上解开POP之后,如何刷新当前视图?
这是加载弹出的代码:
let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "trustSelect") as! WelcomeViewController
self.addChildViewController(popOverVC)
popOverVC.view.frame = self.view.frame
self.view.addSubview(popOverVC.view)
popOverVC.didMove(toParentViewController: self)
POP Over View Controller使用以下代码在敲击按钮时解散视图控制器:
self.view.removeFromSuperview()
易于使用本地通知,
1)将其放在您的POP上
override func viewDidDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().postNotificationName("refresh", object:nil, userInfo: nil)
}
2)然后在您的ViewController粘贴中,在ViewDidload
中NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.ChangeText), name: "refresh", object: nil)
3)然后将此方法粘贴在ViewController中的某个地方,
func ChangeText(){
DispatchQueue.main.async {
self.parent?.textLabel.text = "Random text"
}
}
您可能需要在主线程中设置文本。
DispatchQueue.main.async {
self.parent?.textLabel.text = "Random text"
}