当ViewController上的输入无效时,如何禁用导航栏按钮?

时间:2018-11-22 02:09:55

标签: ios swift

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

import pandas as pd import numpy as np test_data='train.csv' csv_reader = pd.read_csv(test_data) x_list = csv_reader[['spectra']] x_list = np.array(x_list) x = [float(o) for o in x_list[0]] y_list = csv_reader[['molecule']]

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

在此Traceback (most recent call last): File "D:/Users/11825/source/repos/deep/shiyishi.py", line 16, in <module> x = [float(o) for o in x_list[0]] File "D:/Users/11825/source/repos/deep/shiyishi.py", line 16, in <listcomp> x = [float(o) for o in x_list[0]] ValueError: could not convert string to float: '[0.0267469, 0.0272395, 0.0268747, 0.0267555]' 方法内部,基本上在我从此AddAlarmViewController返回到AlarmTableViewController之前,我使用以下代码

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

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

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

谢谢

1 个答案:

答案 0 :(得分:0)

我的建议是将逻辑放入

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

这可以帮助您解决问题。

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

} }