2013-07-19 1 views
1

Селектор «go» с типом возврата IBAction не отвечает правильно. Если кнопка нажата, при этом пустое поле текста, то есть его значение равно нулю, поток должен возвращать часть «if», а не «else». Но он отлично работает, когда я нажимаю кнопку второй раз. что может быть проблемой?UIButton не отвечает, как следует в приложении с одним окном в iOS6

Ниже приведен код из файла реализации, то есть ViewController.m, где я реализовал селектор go.

@synthesize textField = _textField; 


- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
    //Clear the text field 
    self.textField.text =nil; 
} 

NSString *s; 

-(IBAction)go:(id)sender 
{ 
    [self.textField resignFirstResponder]; 

    if (self.textField.text == nil) 
    { 
     s = [NSString stringWithFormat:@" Enter Your Name First " ]; 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Blank Field : " 
                 message:s 
                 delegate:self 
               cancelButtonTitle:@"OKAY" 
               otherButtonTitles:nil]; 
     [alert show]; 
    } 
    else 
    { 
     s = [NSString stringWithFormat:@"Hello %@ " , self.textField.text]; 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello " 
                 message:s 
                 delegate:self 
               cancelButtonTitle:@"Thanks" 
               otherButtonTitles:nil]; 

     [alert show];  
    } 
} 

Просьба помочь. Спасибо заранее.

+0

Может быть, вместо 'nil' теста для' «» '? –

ответ

0

Вместо использования nil в качестве компаратора, я бы вместо того, чтобы использовать что-то более конкретное, как

if ([self.textfield.text length] > 0) 
{ 

} 
else 
{ 

} 
+0

Большое спасибо, сэр. Он работал так, как я ожидал. –