在另一个视图上更新标签
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
调用。
我有两个视图,其中一个上有标签。在第二个视图中,有一个按钮。我在这里想要实现的是能够按下按钮并更新第一个视图上的标签。我怎么做?我无法从第二个视图访问 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
调用。