Вам необходимо объявить переменную таймера глобально для вашего класса.Затем при необходимости инициализируйте таймер и отключите его при вызове функции showButton()
.
Это небольшой пример.
class timerViewController: UIViewController {
var timer: Timer!
override func viewDidLoad() {
super.viewDidLoad()
print("Starting Timer")
timer = Timer.scheduledTimer(timeInterval: 5.0, target: self, selector: #selector(timerCompleted), userInfo: nil, repeats: false)
}
@objc func timerCompleted(sender: Timer!){
print("Timer Completed")
}
func showButton(){
timer.invalidate()
}
}