4

I have a label that gets hidden when a button is pressed. After a certain time period like 60 secs I want the label to reappear. I'd assume I do that in viewDidAppear, How would i do that?

@IBOutlet weak var myLabel: UILabel!

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
       //after 60 secs myLabel should reappear
       //self.myLabel.isHidden = false
    }


@IBAction func buttonTapped(_ sender: UIButton){
       self.myLabel.isHidden = true
}
Lance Samaria
  • 17,576
  • 18
  • 108
  • 256

2 Answers2

14
@IBAction func buttonTapped(_ sender: UIButton){
    self.myLabel.isHidden = true
    DispatchQueue.main.asyncAfter(deadline: .now() + 60) {
        self.myLabel.isHidden = false
    }
}
Ahmad F
  • 30,560
  • 17
  • 97
  • 143
Max Pevsner
  • 4,098
  • 2
  • 18
  • 32
1

You can do this by scheduling a timer:

class ViewController: UIViewController {

    @IBOutlet weak var myLabel: UILabel!

    @IBAction func buttonTapped(sender: UIButton) {
        if !myLabel.isHidden {
            myLabel.isHidden = true
            Timer.scheduledTimer(timeInterval: 15.0, target: self, selector: #selector(showLabel), userInfo: nil, repeats: false)
        }
    }

    func showLabel() {
        myLabel.isHidden = false
    }
}
Danh Huynh
  • 2,337
  • 1
  • 15
  • 18