Alert View - Как использовать clickedButtonAtIndex: - PullRequest
4 голосов
/ 01 июня 2011

У меня есть это предупреждение (отказ от ответственности), которое появляется, когда приложение завершает запуск. Это работает (мое приложение теперь намного медленнее), но я также хочу выйти из приложения, если пользователь нажмет no, thanks. Я думаю, что я должен использовать clickedButtonAtIndex:.
1. Может ли кто-нибудь помочь мне в этом?
2. является ли viewDidLoad лучшим методом для запуска alertView при запуске приложения?
3. есть ли причина, по которой моему приложению требуется больше времени для запуска при сборке и запуске?

-(void)viewDidLoad { 
    UIAlertView *disclaimer = [[UIAlertView alloc] initWithTitle:           @"DISCLAIMER" message:@"This Application is provided without any express or implied    warranty. Errors or omissions in either the software or the data are not guaranteed against. The application is not intented to replace official documentation or operational procedure. In no event shal the developer be held liable for any direct or indirect damages arising from the use of this application" delegate:self cancelButtonTitle:@"No, thanks" otherButtonTitles:@"Accept", nil];
    [disclaimer show];
    [disclaimer release];
    [super viewDidLoad];
}

Ответы [ 2 ]

12 голосов
/ 01 июня 2011
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 0)
// Do something
else
// Some code
}

или

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{

    if(buttonIndex == 0)
    // Do something
    else
    // Some code
}

Убедитесь, что ваш класс соответствует протоколу UIAlertViewDelegate.

И я не думаю, что выход из приложения - это хороший подход.Позволить пользователю только закрыть приложение, нажав кнопку домой.Это против поведения по умолчанию, которое пользователь ожидает от каждого приложения.

10 голосов
/ 12 ноября 2013

Попробуйте эту магию:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if(alertView.cancelButtonIndex == buttonIndex){
    // Do cancel
    }
    else{
    // Do the real thing
    }
}
...