2013-01-01 34 views
0

我是iPhone應用程序開發的初學者。我正在創建一個iPhone應用程序,它具有帶3個用於用戶輸入(textbox1,textbox2和textbox3)的用戶界面的用戶界面,對於UserName,MailAddress和TelephoneNumber 和一個按鈕(ok),帶有觸發內部事件的動作事件。驗證目標c

用戶必須使用強制數據填寫所有文本框才能繼續點擊確定按鈕。當所有文本框都被填充時警報消息說要感謝您必須生成。

如果不這樣做,應該生成警報視圖。

但我想要做的是:

  • 如果所有的文本框爲空警報應該警告訊息,指出沒有輸入用戶名,MailAddress和TelephoneNumber顯示。
  • 如果只有用戶名未被用戶填寫,則應該顯示警報並顯示警告消息,說明未輸入用戶名。
  • 如果只有用戶沒有填寫MailAddress,則應該顯示警報,並顯示警告消息,說明未輸入MailAddress。
  • 如果只有TelephoneNumber未被用戶填充,則應該顯示警報,並提示AlertNumber未輸入。
  • 如果UserName和MailAddress都未被用戶填充,則應該顯示警報,並且警報消息顯示未輸入UserName和MailAddress。
  • 如果UserName和TelephoneNumber都未被用戶填充,則應該顯示警報,並顯示警報消息,說明未輸入UserName和TelephoneNumber。
  • 如果MailAddress和TelephoneNumber都未被用戶填充,則應該顯示警報,並提示郵件說明未輸入MailAddress和TelephoneNumber。

我該如何在目標c中做到這一點?有沒有簡單的方法? 我必須通過使用函數來做到這一點,以便它可以調用所需的函數,以便當用戶點擊ok按鈕而不填寫所有需要的數據時相應地顯示用戶輸入所需的警報消息。

+0

檢查我的答案用代碼鏈接 –

+1

謝謝主席先生,它的工作。非常感謝.. :)) –

+0

但這不是一個要問的問題,我是免費的,這就是爲什麼我解決了它......這是一個基本的編程邏輯問題,不管任何語言。 –

回答

2

找到code ...

NSInteger user, mail, telephone; 
user=mail=telephone=0; 

if (![self.userName.text isEqualToString:@""]) { 
    user=1; 
} 
if (![self.mail.text isEqualToString:@""]) { 
    mail=2; 
} 
if (![self.telephone.text isEqualToString:@""]) { 
    telephone=4; 
} 

NSString *warningString=[NSString new]; 
switch (user+mail+telephone) { 
    case 0: 
     [email protected]"Please enter user, mail and telephone."; 
     break; 
    case 1: 
     [email protected]"Please enter mail and telephone."; 
     break; 
    case 2: 
     [email protected]"Please enter user and telephone."; 
     break; 
    case 3: 
     [email protected]"Please enter telephone."; 
     break; 
    case 4: 
     [email protected]"Please enter user and mail."; 
     break; 
    case 5: 
     [email protected]"Please enter mail."; 
     break; 
    case 6: 
     [email protected]"Please enter user."; 
     break; 

    default: 
     break; 
} 
NSLog(@"-->%@",warningString); 
if (user+mail+telephone < 7) { 

    UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Alert" message:warningString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alertView show]; 
} 
+0

雅如何創建一個方法,並做到這一點。我不習慣做這樣的事情。請問我可以用代碼嗎? –

+0

- (void)showValidationAlert:(NSString *)alertMessage {//在此處顯示警報} –

+0

可以給我完整的代碼嗎?作爲初學者,我無法正確理解:( –

1

除非所有項目填寫正確,否則禁用該按鈕會更容易嗎?

這意味着更少的代碼擺弄,看看有什麼和沒有進入。而且這是一種提供反饋的更快方式 - 因爲您不必通過按鍵來查看數據是否已被接受,然後按下按鈕來取消警報視圖以回到編輯輸入。

+0

謝謝你的建議我非常感謝你的想法。謝謝你。但問題是我必須通過使用我的導師告訴的功能來做到這一點。所以你可以通過使用函數調用來幫助我做到這一點?請.. –

0

您可以檢查文本框是否有數據或不作爲

if (userNameField.text.length == 0) 
{ 
NSLog (@"Username is not being entered"); 
} 
else 
{ 
NSLog (@"Username Field has some data "); 
} 

同樣可以做出適當的條件下按您的要求。

+0

感謝您的idea.i需要使用函數調用來做到這一點,我已經通過使用簡單的方法來實現這一點,但是問題在於我必須強制執行它通過使用功能老師告訴..所以我問這個如何通過函數調用cud做。請幫助mw與.. –

+0

然後創建一個函數爲 - (BOOL)checkWhetherUserNameFieldHasData – ask4asif

+0

然後創建一個函數爲 - (BOOL)checkWhetherTextFieldHasData:(UITextField *)textfeild { return textfeild.text.length; } 現在,在上面的代碼只需調用這個函數在所有的if else語句,並傳遞要檢查這樣 的文本框,如果([自checkWhetherTextFieldHasData:userNameField]) 或者如果([自checkWhetherTextFieldHasData:mailAddressField]) 或如果([自檢checkWhetherTextFieldHasData:telephoneNumberField]) 如果它解決您的問題,請接受我的答案:) – ask4asif

-1

目標C中的驗證與簡單C++或任何其他語言中的驗證相同。

你要設定的條件類似

if(textbox1.text.lenght == 0) 
{ 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Please Enter User  Name" message: nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alertView show]; 
} 
else if(textbox2.text.lenght == 0) 
{ 
    //alert Message 
} 

問候

阿布舍克戈亞爾