2014-02-17 153 views
1

我的表單有兩部分,第一部分有一個「下一步」按鈕,它用於另一個視圖控制器,我填寫表單的後半部分,然後提交。在iOS 7應用程序中驗證表單時,最佳方法是什麼?

我有以下字段: 第一種形式:姓名,年齡,自(以dd/mm/yyyy格式的日期)格式,From,Notes。 第二種形式:聯繫人姓名,電子郵件,電話,筆記。

如果第一個表單未完全填寫完畢,並且用戶單擊「下一步」按鈕,則警報應該顯示解釋表單上需要更正的內容。

如果用戶離開一個字段並進入另一個字段,並且在他們離開的字段中出現錯誤,那麼有一個警報顯示會很好。更好的是,如果一切正常,我可以將現場邊框顯示爲綠色,否則顯示爲紅色。

我想這樣做只能在名稱字段中輸入字母字符,在「since」字段中以dd/mm/yyyy格式輸入日期等等。

我所有的文本字段代碼都在prepareForSegue:方法中。現在我創建一個對象的新實例,並將屬性設置爲文本字段的文本值,然後將該對象傳遞給下一個控制器。我想知道是否有一種方法可以讓文本字段在被點擊時偵聽,並檢測正在輸入的內容,從而能夠檢查輸入的內容是否違反規則。我GOOGLE了,似乎無法找到很多。

這樣做的最好方法是什麼?是否有標準遵循?

回答

2

可可有key-value validation模式。但它不會在iOS上自動調用。無論何時,只要你想知道你想告訴用戶輸入錯誤,你就必須這樣做。

也許你做不是想要點擊「下一步」按鈕後做到這一點。這是Web應用程序的風格,如果可以驗證每個輸入字段的用戶輸入隔離,那麼從用戶角度來看就不是好主意。

您應該使用代表輸入字段(可能爲所有人)並實施代理方法進行結尾編輯-textFieldDidEndEditing:或更改-textField:shouldChangeCharactersInRange:replacementString:

+0

這實際上是我現在正在做的,它似乎是理想的。只要用戶點擊另一個文本框,彈出警報就會顯示相關的錯誤信息。非常方便的感謝。 – LondonGuy

+0

不客氣! –

2

我不認爲有這個問題的預定義的解決方案。 但您必須創建您自己的解決方案。

這裏有一些example-- 像電子郵件驗證

-(BOOL)validateEmailWithString:(NSString*)email 
{ 
NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; 
return [emailTest evaluateWithObject:email]; 
} 

,你可以創建一些通過你的自我。 這裏是some link you for help

相關問題