0

以下はシナリオです。

  1. アラートを表示する Controller の viewDidLoad に UIAlertView を作成しました。

    loginAlert = [[UIAlertView alloc] initWithTitle:@"Check"
                                                message:@"Ok"
                                               delegate:nil
                                      cancelButtonTitle:@"Ok"
                                      otherButtonTitles:nil, nil];
    [loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput]; 
    
  2. [アラートショー]と呼んで表示します。

  3. ユーザーが OK を押すと、textEndEditing デリゲート メソッドに移動し、nil/worn 値が入力された場合は、[alert show] を再度呼び出します。

    - (void)textFieldDidEndEditing:(UITextField *)textField
    {
    if ([textField.text length] > 0)
    {
    
    }
    else
    {
     NSLog(@"Checking");
     [loginAlert show];
    }
    }
    

しかし、再び表示されません。何をすべきか教えてください。

4

6 に答える 6

3

の代わりにdelegate:nildelegate:self

loginAlert = [[UIAlertView alloc] initWithTitle:@"Check"
                                            message:@"Ok"
                                           delegate:self
                                  cancelButtonTitle:@"Ok"
                                  otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
于 2013-05-16T09:27:58.027 に答える
0
   -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
  if (buttonIndex == 0) 
    {
       // Your code write in this method and show your alert 
    }
   else
   {
        [loginalert show];
   }
}         

このコードがお役に立てば幸いです。

于 2013-05-18T07:16:10.917 に答える
0

これを試して:

loginAlert = [[UIAlertView alloc] initWithTitle:@"Check"
                                        message:@"Ok"
                                       delegate:self
                              cancelButtonTitle:@"Ok"
                              otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput]; 


- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 0) {
        [yourTextField resignFirstResponder];
    }
}

- (void)textFieldDidEndEditing:(UITextField *)textField {
    if (textField==yourTextField) {
        if ([yourTextField.text isEqualToString:@""] || yourTextField.text == nil) {
            [yourAlert show];
        }
    }
}

問題については、これも参照してください。

  1. UIAlertView を表示したままにする
  2. uialertview が複数回呼び出されました
于 2013-05-16T09:19:19.730 に答える
0

シンプルにするのはどうですか..?

- (void)textFieldDidEndEditing:(UITextField *)textField
{
if ([textField.text length] > 0)
{

}
else
{
 NSLog(@"Checking");
 loginAlert = [[UIAlertView alloc] initWithTitle:@"Check"
                                            message:@"Ok"
                                           delegate:self
                                  cancelButtonTitle:@"Ok"
                                  otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput]; 
 [loginAlert show];
}
}
于 2013-05-16T09:28:31.857 に答える