如何为 Xcode 保存按钮的禁用

How to save the disability of a button for Xcode

我要对按钮执行的操作是,一旦按下它,它将在一天的剩余时间内禁用。现在我的代码确实会在按下它后禁用它,但是如果用户离开应用程序并返回它,该按钮将再次启用。有没有办法使用 NSUserDefaults?

let save = UserDefaults.standard
let calendar = Calendar.current
let now = Date()

这是在 viewDidLoad 中:

    let seven_today = calendar.date(
        bySettingHour: 7,
        minute: 0,
        second: 0,
        of: now)!

    let two_thirty_today = calendar.date(
        bySettingHour: 14,
        minute: 30,
        second: 0,
        of: now)!

    if now >= seven_today && now <= two_thirty_today

    {
        getPointsOutlet.isEnabled = true
    }

    else

    {
        getPointsOutlet.isEnabled = false
    }

这是按下按钮的功能:

 Total_Points += 12
 pointsLabel.text = "Total Points: \(Total_Points)"
 getPointsOutlet.isEnabled = false

试试这个:

  if now >= seven_today && now <= two_thirty_today

  {

     let savedDayNum = defaults.integer(forKey: "dayClickNum")


     let date = Date()

     let calendar = Calendar.current

     let nowDayNum = calendar.component(.day, from: date)


    if(savedDayNum == nowDayNum)
    {
         getPointsOutlet.isEnabled = false
    }
    else
    {
         getPointsOutlet.isEnabled = true
    }
  }

  else

 {
      getPointsOutlet.isEnabled = false
 }

// 在函数中单击执行此操作

 Total_Points += 12

 pointsLabel.text = "Total Points: \(Total_Points)"  

 getPointsOutlet.isEnabled = false


 let date = Date()

 let calendar = Calendar.current

 let dayOfClickDate = calendar.component(.day, from: date)

 defaults.set(dayOfClickDate, forKey: "dayClickNum")

另外,为了获得完美的解决方案,您可能需要注意月份,因为用户可能在一个月内不会再次启动应用程序,如果存储的天数与另一个月的开放日重合,则可能会禁用该按钮