2013-01-01 31 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 
} 

问候

阿布舍克戈亚尔