2012-02-16 2 views
0

Я как бы застрял на UIAlertViewStylePlainTextInput. (Мой код слишком длинный, чтобы публиковать здесь, но это та часть, где проблема существует.) Это все виды работ, но программа не дожидалась, пока пользователь вводит эту информацию, прежде чем продолжить. Кнопка «editName» не изменяет отображение в приведенном ниже коде, но кнопка updateDisplay работает нормально (если вы нажали кнопку «editName» перед нажатием «updateDisplay»). Как я могу заставить все остановиться, пока пользователь не войдет в информацию (или отменяет). Или есть еще кое-что, что приведет меня туда, куда мне нужно идти. (Я играл с остальной частью кода в (void) alertView, но это, похоже, не является правильным способом сделать это).UIAlertViewStylePlainTextInput - программа продолжается, не дожидаясь ввода текста от пользователя

Заранее спасибо.

#import "HSTestViewController.h" 

@implementation HSTestViewController 
@synthesize display; 

NSString *newName; 

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 

{  
    if (buttonIndex == 1) 
    { 
     newName = [[alertView textFieldAtIndex:0] text]; 
    } 
} 


- (void) getNewName; 
{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You made the High Score List" 
               message:@"Please enter your name" 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Ok", nil]; 

    alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
    [alert show]; 
} 

- (IBAction)editName:(id)sender 
{ 
    [self getNewName];  
    newName = display.text; 
} 

- (IBAction)updateDisplay:(id)sender 
{ 
    display.text = newName; 
} 

@end 

ответ

2

Добавить UIAlertViewDelegate в класс. И выполните нижеуказанный метод делегирования.

Значение индекса кнопки ОК будет 1 в вашем случае.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex) 
    { 
     // call the method or the stuff which you need to perform on click of "OK" button. 
    } 
} 

Надеюсь, это поможет.

+0

спасибо. Я переместил некоторые вещи, как вы предлагали, и теперь моя программа теперь делает именно то, что я намеревался сделать. Я также добавил UIAlertViewDelegate, чего я раньше не делал. – ShadowDES