说,我有一个标签显示:正在加载......
问题:从VC返回时(2)。标签没有隐藏。
如何在从VC(2)返回时隐藏它,并且在导航到VC(2)时不要隐藏它并显示消息:正在加载....
in VC(1) @IBOutlet weak var lbLoadingMsg In viewDidLoad() { lbLoadingMsg.hidden = true } -2-- turn it on when prepare to navigate to VC(2) override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool { --code-- lbLoadingMsg.hidden = false } Override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!){ }
答案 0 :(得分:1)
您可以使用NSNotificationCenter
。
按照以下简单步骤:
1.在您的VC(2)中,将此代码添加到您要返回的按钮中:
@IBAction func goBack(sender: AnyObject) {
NSNotificationCenter.defaultCenter().postNotificationName("hide", object: nil)
self.dismissViewControllerAnimated(true, completion: nil)
}
2.在您的第一个视图中将此代码添加到viewDidLoad
方法:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideLabel:", name:"hide", object: nil)
}
现在这个方法会调用这个函数:
func hideLabel(notification: NSNotification){
self.lbLoadingMsg.hidden = true
}
当从第一个视图按下goBack
按钮时,这将在第一个视图中隐藏您的标签。
希望这会对你有所帮助。
答案 1 :(得分:0)
在VC2中写下这个 ,
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var identifier = segue.identifier
if(identifier! == "yourIdentifier"){
var vc1:VC1 = segue.destinationViewController as! VC1
vc1.lbLoadingMsg.hidden = true
}
}
答案 2 :(得分:0)
func viewDidAppear(_ animated: Bool) {
lbLoadingMsg.hidden = true
}
移动
lbLoadingMsg.hidden = true
从viewDidLoad
到viewDidAppear
的行。我认为最快捷的方式。