AddAlarmViewController

AddAlarmViewController

我有一个视图控制器,我们将其称为AddAlarmViewController.swift,它位于导航控制器内部,在其中调用

prepare(for segue: UIStoryboardSegue, sender: Any?)

这个AddAlarmViewController包括我的iOS应用程序中的一个屏幕,该屏幕创建一个新的Alarm,根据一些DatePickers的输入,将其添加到单独的UIViewController中的Alarms堆栈中。

在此prepare方法内部,基本上在我从此AddAlarmViewController返回到AlarmTableViewController之前,我使用以下代码

    // Configure the destination view controller only when the save button is pressed.
    guard let button = sender as? UIBarButtonItem, button === saveButton else {
        os_log("The cancel button was pressed, cancelling from AddAlarmViewController", log: OSLog.default, type: .debug)
        return
    }


之后,我将每个datePicker的时间拖入变量中,并使用这些变量构建Alarm对象。

问题是我所有用于确定时间是否有效(结束时间在开始时间等之前)的逻辑都包含在Alarm对象的init方法中,而不是包含在此AddAlarmViewController中,所以我似乎无法弄清楚输入无效时间后,如何更改要禁用的导航栏保存按钮项。我是否需要使AddAlarmViewController成为Alarm类的代表?

谢谢

最佳答案

我的建议是将逻辑纳入

  func shouldPerformSegue(withIdentifier identifier: NSStoryboardSegue.Identifier, sender: Any?) -> Bool


那可以帮助您解决问题。

 extension : UIViewController{
 override  func shouldPerformSegue(withIdentifier identifier:    NSStoryboardSegue.Identifier, sender: Any?) -> Bool{
return true


}
}

10-08 07:30