здравствуйте! мне надо добавить кнопки в таймер которые будут прибавлять/убавлять 30 секунд из таймера

import UIKit

class FirstViewController: UIViewController {

@IBOutlet weak var Minute: UILabel!
@IBOutlet weak var Second: UILabel!

@IBOutlet weak var Start: UIButton!

@IBOutlet weak var Minus: UIButton!
@IBOutlet weak var Plus: UIButton!


var second = 10
var minute = 00
var timer = Timer()

override func viewDidLoad() {
    super.viewDidLoad()
}

@IBAction func start(_ sender: UIButton) {
  timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(countDownMethod), userInfo: nil, repeats: true)
    Second.text = "\(second)"
    Minute.text = "\(minute)"
}
@objc func countDownMethod(){
    second -= 1
    Second.text = "\(second)"
    Minute.text = "\(minute)"
    
    if second == 0 {
        minute -= 1
        second = 60
        Second.text = "\(second)"
        Minute.text = "\(minute)"
    }
    if minute == -1{
        timer.invalidate()
        minute = 6
        second = 1
        Second.text = "\(second)"
        Minute.text = "\(minute)"
    }
}
@IBAction func plus(_ sender: UIButton) {
      second += 30
    if second >= 59{
        second = 1
        minute += 1
        Second.text = "\(second)"
        Minute.text = "\(minute)"
    }
  
}
@IBAction func minus(_ sender: UIButton) {
}

}

Ответы (1 шт):

Автор решения: VAndrJ

Для счета используйте единый источник. Вместо seconds и minutes оставьте только seconds:

var seconds: Int = 0

При форматировании уже отображайте из него что Вам неободимо (по Вашему примеру):

Second.text = "\(seconds % 60)" // Посмотрите Swift naming conventions, название сделайте с маленькой буквы и чтобы понятно было что это, к примеру, secondsLabel
Minute.text = "\(seconds / 60)"

И тогда прибавлять/отнимать не составит проблем:

// Прибавить просто
seconds += 30
// Отнять чтобы не стало отрицательным, к примеру, так:
seconds = max(0, seconds - 30)
→ Ссылка