导航VC1到VC2来回时如何隐藏和显示标签

时间:2015-06-11 09:23:57

标签: swift

说,我有一个标签显示:正在加载......

问题:从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!){

}

3 个答案:

答案 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

viewDidLoadviewDidAppear的行。我认为最快捷的方式。