Swift 子视图关闭后的UIText标签刷新

Swift 子视图关闭后的UIText标签刷新,swift,Swift,我有一个弹出式视图控制器来更改设置。它从UIPickerView更新应用程序中的文本。它工作得很好,但是当我关闭弹出视图控制器时,文本标签不会刷新。当我按back并返回到视图控制器时,标签将更新 关闭弹出视图控制器后,如何刷新当前视图 以下是加载弹出窗口的代码: let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "trustSelect") as! W

我有一个弹出式视图控制器来更改设置。它从
UIPickerView
更新应用程序中的文本。它工作得很好,但是当我关闭弹出视图控制器时,文本标签不会刷新。当我按back并返回到视图控制器时,标签将更新

关闭弹出视图控制器后,如何刷新当前视图

以下是加载弹出窗口的代码:

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)
点击按钮时,弹出式视图控制器使用以下代码关闭视图控制器:

self.view.removeFromSuperview()

您可能需要在主线程中设置文本

DispatchQueue.main.async {
  self.parent?.textLabel.text = "Random text"
}

您可能需要在主线程中设置文本

DispatchQueue.main.async {
  self.parent?.textLabel.text = "Random text"
}

它易于使用本地通知

1) 把这个放到你的弹出视图中

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"
 }
}

它易于使用本地通知

1) 把这个放到你的弹出视图中

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"
 }
}

谢谢你的回复。我该把这个放在哪里?在“关闭”按钮或包含标签的视图控制器中?这里我以为您是从popover控制器进行设置的。因为它是子视图控制器,所以我使用了父属性。更新了我的回答谢谢你的回复。我该把这个放在哪里?在“关闭”按钮或包含标签的视图控制器中?这里我以为您是从popover控制器进行设置的。因为它是子视图控制器,所以我使用了父属性。更新了我的答案这太棒了!非常感谢。这太棒了!非常感谢。