2017-05-02 31 views
0

我有一个以下问题,我不确定如何解决。我正在构建应用的设置,用户可以在其中指定帐户列表(左侧TableViewConstoller)。正如您在屏幕上看到的那样,有一个Save按钮,它将新帐户存储到数据库中。Xamarin iOS - 基于数据验证结果启用保存按钮

一切正常,除了空的Name值,这会导致异常。我需要解决这个问题,只有在数据通过验证(Name非空)时才会启用Save按钮。

我正在考虑一些事件,它会监视Account.Name属性并基于它的值,Save按钮将被启用/禁用。

问题是,我不知道如何实现这一点。

enter image description here

感谢您的任何建议。

回答

1

对于要通过验证的数据,它需要首先触发一个事件,那么为什么不直接钩入“保存”按钮的touchupinside事件对正在提交的数据执行一些验证,以及如果它无法向用户显示警报?对我来说似乎更清晰,也包括视觉提示。否则你需要将按钮从开始设置为禁用,然后每次与其中一个tableviewcell进行交互时执行检查。

验证将是相当简单:(显然使用“& &”操作来验证一个以上的空文本框)

If(nameTextBox.Text.Trim().Length != 0) 
{ 
    // Great store the data 
} 
else 
{ 
    UIAlertView alert = new UIAlertView() { 
      Title = "alert title", Message = "this is a simple alert" 
    }; 
    alert.AddButton("OK"); 
    alert.Show(); 
} 

如果你有一个代码示例我也许能够更具体。

编辑:

这也是值得考虑您的未来需求,你应该能够处理没有名字被传递,如果用户没有一个已经存储,你应该强迫他们提供一个,或者如果用户已经拥有一个名称并且不会更改名称,只需保留现有名称并继续更新用户可能与之交互的所有其他字段。花费一些时间来设计出任何特定功能的需求总是值得的。

+0

非常感谢@ Digitalsa1nt。其实我已经使用过这种方法,但仍然是一种解决方法。你说得对,这也许是正确的做法。最初我想要有与iOS日历类似的行为 - 除非添加偶数名称,否则添加按钮不会启用。 无论如何,非常感谢这个解决方案。 – Izmail360

+0

任何时候,我很高兴你得出同样的结论,与应用程序大楼的好运。 – Digitalsa1nt

相关问题