2015-03-09 3 views
-3

Im новый тоже iOS. В моем приложении я реализовал UIAlertView и хочу, чтобы не отображал alertView снова, когда пользователь нажимает кнопку ok и снова показывает предупреждение, если пользователь нажимает кнопку отмены. Пожалуйста, помогите мне. Тпх вот мой кодUIAlertView снова не отображается

if (chek) { 
      UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"" message:@" hi " delegate:self cancelButtonTitle:@"cancel " otherButtonTitles:@"ok", nil]; 
       [alertView show]; 
    } 

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
      NSString *buttontitle=[alertView buttonTitleAtIndex:buttonIndex]; 
      if ([buttontitle isEqualToString:@"ok"]) { 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sibche2://showapp/7030"]]; 
       chek=!chek ; } 
      else if ([buttontitle isEqualToString:@"cancel "]){ 
       NSLog(@"hello my friend"); 
       chek=chek; 
} 
+0

я думаю, что этот код correct.Please объяснить, что это проблема. –

ответ

1

Прежде всего, вы должны использовать UIAlertController потому UIAlertView осуждается. Затем вы должны взглянуть на этот метод делегата из UIAlertView:

// Вызывается, когда нажимается кнопка. Вид будет автоматически удален с поля после того, как этот вызов возвращает

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

Здесь вы можете проверить, какая кнопка была нажата без сравнения строки, но индекс.

Если вы хотите использовать UIAlertView вы можете использовать:

//show alert whenever you need to 
[[[UIAlertView alloc]initWithTitle:@"Title" message:@"Your error message here" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil]show]; 

//handle button click 
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == 0) 
    { 
     NSLog(@"Cancel action"); 
    } 
    else if (buttonIndex == 1) 
    { 
     NSLog(@"OK action"); 
    } 
} 

Если вы хотите использовать AlertController вы можете использовать:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Your error message here" preferredStyle:UIAlertControllerStyleAlert]; 

    UIAlertAction *cancelAction = [UIAlertAction 
            actionWithTitle:NSLocalizedString(@"Cancel", @"Cancel action") 
            style:UIAlertActionStyleCancel 
            handler:^(UIAlertAction *action) 
            { 
             NSLog(@"Cancel action"); 
            }]; 

    UIAlertAction *okAction = [UIAlertAction 
           actionWithTitle:NSLocalizedString(@"OK", @"OK action") 
           style:UIAlertActionStyleDefault 
           handler:^(UIAlertAction *action) 
           { 
            NSLog(@"OK action"); 
           }]; 

    [alertController addAction:cancelAction]; 
    [alertController addAction:okAction]; 

    [self presentViewController:alertController animated:YES completion:nil]; 

Я надеюсь, что это помогает.

+0

hi lovo .tnx для ur heloping. на самом деле я работаю с ios 7 и запутался с uialertcontroller.please, помогите мне более понятным .tnx –

+0

как уже упоминалось rcat24, UIAlertView устарел, и вы действительно должны использовать UIAlertController – LoVo

0

Убедитесь, что эквивалентный код для прошивки 8, используя приведенные выше строки, не может работать, как ожидалось на прошивке 8.

UIAlertController

Смежные вопросы