2012-04-21 42 views
9

Tôi có một số UIAlertView hiển thị với mã này yêu cầu bạn xếp hạng ứng dụng trong cửa hàng ứng dụng.Hành động nút UIAlertView?

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

Nhưng tôi không thể tìm ra cách để thêm một hành động để nút OK sẽ đưa bạn đến các ứng dụng trong AppStore.

Trả lời

25

Làm thế nào về điều này?

- (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

Vui lòng đổi tên phương thức thành clickButtonAtIndex ... Có thể có một cơ hội mà mọi người có thể sao chép cùng một tên phương thức được đề cập ở trên và nơi mà phương thức sẽ không bao giờ được gọi ... –

+0

Chỉ một điểm, trong ViewController.h, thêm: sau @interface ViewController: UIViewController nó trông như thế này: "@interface ViewController: UIViewController " – JomanJi

+0

Vậy tôi gọi phương thức này ở đâu? Nó sẽ được gọi là riêng của nó, vì chúng tôi đã thêm UIViewController vào tệp tiêu đề, hoặc chúng ta cần phải làm một cái gì đó như [self alertView ...] ở đâu đó? – SteBra

9

Bạn muốn một cái gì đó như sau:

- (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 của xuất hiện trong giao diện điều khiển khi bạn nhấn một nút và giúp đỡ bất cứ khi nào bạn muốn gỡ lỗi/thử nghiệm bất cứ điều gì.

Sau đó cho hành động mà bạn muốn, bạn muốn viết một cái gì đó như:

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

Để cảnh báo nút 2, thay vì kiểm tra nếu chỉ mục nút là '0', bạn sẽ muốn kiểm tra xem nút hủy có được nhấn hay không' if (buttonIndex! = [AlertView cancelButtonIndex]) '. – chown

+0

Tôi chỉ cần thêm trợ giúp thêm để kiểm tra trong tương lai nếu bất kỳ nút nào khác được nhấn, sau đó anh ta có thể dễ dàng xem và tiếp tục. – Domness

+0

Vui lòng đổi tên phương thức thành clickButtonAtIndex .... Có thể có một cơ hội mà mọi người có thể sao chép cùng tên phương thức được đề cập ở trên và phương thức sẽ không bao giờ được gọi .... –

0

nhanh chóng: sử dụng khối mã này để hiển thị thông báo cảnh báo.

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) 
Các vấn đề liên quan