UIAlertView не исчезает даже после принятия ответного действия - PullRequest
0 голосов
/ 10 декабря 2011

В моем UIAlertView я хочу открыть другой UIView при нажатии кнопки «ОК».

Но проблема в том, что даже после отображения UIView предупреждение остается на экране, и как только оно исчезает, кажется, что UIView отключен.

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add details" message:@" Do you like to set the details now?" delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No",nil];
[alert show];
[alert release];

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{   // the user clicked one of the OK/Cancel buttons
    NSString *title = [alertView title];

    if([title isEqualToString:@"Add details"])
    {
        .......

Любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 20 марта 2013

Может быть потому, что новое представление добавлено до того, как представление оповещения фактически отклонено. Поэтому лучше использовать делегат didDismissWithButtonIndex , чтобы отобразить новое представление события нажатия кнопки существующего представления предупреждения вместо clickedButtonAtIndex

- (void) alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
//Add the view
}

Вместо

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//Add the view
}
0 голосов
/ 16 апреля 2012

Почему бы не проверить, нажата ли кнопка в методе делегата вместо заголовка?То есть в

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0){
        // User pressed "YES"
    }else{
        // User pressed "NO"
    }
}

кнопка отмены имеет индекс 0, а остальные кнопки увеличиваются в индексе.Чтобы определить, какое это было предупреждение, вы также должны указать ему тег.Надеюсь, это поможет.

...