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