Добавление IBAction в UIAlert - PullRequest
0 голосов
/ 20 июня 2011

Я пытался заставить свой UIAlert выполнять два разных действия при нажатии кнопок. Когда пользователь нажимает кнопку «перезагрузить», игра перезапускается, а при нажатии главного меню игра должна переходить в главное меню. Кнопка сброса работает нормально, но IBAction продолжает выдавать ошибки об изменении вида.

// called when the player touches the "Reset Game" button
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    // the user clicked one of the OK/Cancel buttons
    if (buttonIndex == 0)
    {
        [self resetGame];
    }
    else
    {
        - (IBAction)showFlip:(id)sender {
            Menu *menuView = [[[menu alloc] init] autorelease];
            [gameView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
            [self presentModalViewController:menuView animated:YES];

        }

    }



    }

Сброс работает нормально, но я получаю две ошибки на IBAction. 'showFlip' undeclared (первое использование в этой функции) и ожидаемый ';' до знака «:». Не понимаю, почему так сказано, потому что когда я публикую IBAction за пределами alertview, он работает нормально. Любая помощь будет оценена, спасибо заранее

Ответы [ 2 ]

4 голосов
/ 20 июня 2011

Вы должны попробовать это:

// called when the player touches the "Reset Game" button
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    // the user clicked one of the OK/Cancel buttons
    if (buttonIndex == 0)
    {
        [self resetGame];
    }
    else
    {
        [self showFlip:nil];
    }
}

- (IBAction)showFlip:(id)sender {
    Menu *menuView = [[[menu alloc] init] autorelease];
    [gameView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentModalViewController:menuView animated:YES];
}
4 голосов
/ 20 июня 2011

Вы определяете метод, а не вызываете его! Этот код

- (IBAction)showFlip:(id)sender {
            Menu *menuView = [[[menu alloc] init] autorelease];
            [gameView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
            [self presentModalViewController:menuView animated:YES];

        }

не должно жить внутри этой функции. Вытащите это, чтобы быть

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    // the user clicked one of the OK/Cancel buttons
    if (buttonIndex == 0)
    {
        [self resetGame];
    }
    else
    {
        [self showFlip];
    }
}

-(void)showFlip{
    Menu *menuView = [[[menu alloc] init] autorelease];
    [gameView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentModalViewController:menuView animated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...