在另一个视图上更新标签

Update Label On Another View

我有两个视图,其中一个上有标签。在第二个视图中,有一个按钮。我在这里想要实现的是能够按下按钮并更新第一个视图上的标签。我怎么做?我无法从第二个视图访问 IBOutlet。我必须对 IBOutlet 做些什么才能使其成为 public 等吗?

使用自定义委托方法在第二个视图中创建一个委托并在第一个视图中访问该视图委托函数。或使用 NSNotification 或使用 NSUserdefaults

你可以使用 NSNotificationCenter

首先在您的 viewDidLoad 方法中将此代码添加到您的 firstViewController class:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshlbl:", name: "refresh", object: nil)

这将在您的应用加载时 addObserver

并在相同的 viewController.

中添加此辅助方法
func refreshlbl(notification: NSNotification) {

    lbl.text = "Updated by second View"  //Update your label here.
}

之后在您的 secondViewController 中添加此代码,当您关闭您的视图时:

@IBAction func back(sender: AnyObject) {
    NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil, userInfo: nil)
    self.dismissViewControllerAnimated(true, completion: nil)
}

现在,当您在 secondView 中按下后退按钮时,refreshlbl 方法将从 firstView 调用。