Обнаружение нажатия кнопки с помощью UIAlertView

Обычно, это не имеет значения, если у вас есть X.X.X.001 или .01 или .1 для последнего октета. См. Мои результаты пинга на 192.168.0.1 и .01 и .001 => все они приводят к .1 ping results

23
задан Bartłomiej Semańczyk 26 October 2015 в 09:24
поделиться

4 ответа

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

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"add button pressed"
                                                message:@"Add to record"
                                               delegate:self    // <------
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"OK", nil];
33
ответ дан 29 November 2019 в 01:14
поделиться

Это ваш код, который я использовал и добавил также мой код. **

-(IBAction) Add 
{

          UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"add button pressed"

                                                       message:@"Add to record"
                                                      delegate:nil     
                                             cancelButtonTitle:@"Cancel" 
                                             otherButtonTitles:@"OK", nil];

       alert.tag=101;//add tag to alert
       [alert show];
       [alert release];     
}

Теперь, когда вы нажимаете кнопку на предупреждении, она будет вызывать clickedButtonAtIndex, но для каждого предупреждения должен быть идентификатор. Так что добавьте тег, а затем

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

{

//  the user clicked one of the OK/Cancel buttons
if(alertView.tag == 101)     // check alert by tag 
{    

if (buttonIndex == 0)

   {

    //just to show its working, i call another alert view

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"OK WORKIng well"

                                                    message:@"no error"
                                                   delegate:nil
                                          cancelButtonTitle:@"IWORKS" 
                                          otherButtonTitles:@"NO PRB", nil];

    [alert show];
    [alert release];    

}

else

{
    NSLog(@"cancel");       
}
}
}

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

14
ответ дан 29 November 2019 в 01:14
поделиться

Мне кажется, если вы хотите показать новое представление оповещения о событии нажатия кнопки существующего представления оповещения, было бы лучше использовать

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

}

метод делегата вместо

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

}
2
ответ дан 29 November 2019 в 01:14
поделиться

Если вы предпочитаете, чтобы ваш код был чище и не зависел от делегата, попробуйте реализацию блоков UIAlertView:

https://github.com/steipete/PSAlertView

Блоки поддерживаются только на устройствах iOS 4+.

1
ответ дан 29 November 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: