2012-04-21 2 views
9

У меня есть UIAlertView, который показывает этот код, который просит вас оценить приложение в appstore.Действие кнопки UIAlertView?

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Rate on the Appstore!" 
               message:@"" 
               delegate:self 
             cancelButtonTitle:@"Later" 
             otherButtonTitles:@"OK", nil]; 
[alert show]; 
[alert release]; 

Но я не могу понять, как добавить действие к кнопке OK, которая приведет вас к приложению в AppStore.

ответ

25

Как об этом?

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (buttonIndex != [alertView cancelButtonIndex]) { 
     NSLog(@"Launching the store"); 
     //replace appname with any specific name you want 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/appname"]]; 
    } 
} 
+0

Пожалуйста, измените имя метода на clickedButtonAtIndex ... Возможно, у людей может быть копия того же имени метода, о котором говорилось выше, и где метод никогда не будет вызван .... –

+0

Просто точка, в ViewController.h, добавляет: после @interface ViewController: UIViewController, поэтому он выглядит так: «@interface ViewController: UIViewController » – JomanJi

+0

Итак, где я могу назвать этот метод? Будет ли это вызвано его собственным, так как мы добавили UIViewController в файл заголовка, или нам нужно что-то сделать, например [self alertView ...]? – SteBra

9

Вы хотите что-то вроде следующего:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (buttonIndex == 0) { 
     NSLog(@"Clicked button index 0"); 
     // Add the action here 
    } else { 
     NSLog(@"Clicked button index other than 0"); 
     // Add another action here 
    } 
} 

NSLog появляются в консоли при нажатии на кнопку и помощь всякий раз, когда вы хотите отладить/тест ничего.

Тогда для действий, которые вы хотите, вы бы написать что-то вроде:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"url_to_app_store"]]; 
+0

Для 2 кнопки оповещать, вместо того, чтобы проверить, если индекс кнопка '0', вы хотели бы проверить, если кнопка отмены была нажата или нет ', если (buttonIndex = [alertView cancelButtonIndex])'. – chown

+0

Я просто добавлял дополнительную помощь для проверки в будущем, если бы были нажаты другие кнопки, тогда он мог легко видеть и продолжать. – Domness

+0

Пожалуйста, измените имя метода на clickedButtonAtIndex .... Возможно, у людей может быть копия того же имени метода, упомянутого выше, и где метод никогда не будет вызван .... –

0

in swift: используйте этот блок кода для отображения предупреждающего сообщения.

let alert = UIAlertController(title: "Alert", message: "This is an alert message", preferredStyle: UIAlertControllerStyle.Alert) 

let action = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: {(action:UIAlertAction) in print("This is in alert block") 
}) 

alert.addAction(action) 
self.presentViewController(alert, animated: true, completion: nil) 
Смежные вопросы