在另一个视图上更新标签

我有两个视图,其中一个标签。 在第二个视图中,有一个按钮。 我想在这里实现的是能够按下按钮并更新第一个视图上的标签。 我怎么做? 我无法从第二个视图访问IBOutlet。 是否有必要对IBOutlet进行公开宣传?

您可以使用NSNotificationCenter

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

 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调用。

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