2011-08-10 110 views

回答

1

使您的控制器类符合UIAlertViewDelegate协议。

@interface MyViewController : UIViewController <UIAlertViewDelegate> 

创建委托警报视图设置为自:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Follow" message:@"me on twitter" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil]; 
[alert show]; 
[alert release]; 

响应委托方法

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
    if (buttonIndex != [alertView cancelButtonIndex]) { 
     // open url 
    } 
} 
+0

感谢大家工作和亚历克斯 – Laaaa

1

的你UIAlertViewdelegate必须(在大多数情况下,self)被设置为分类在我的iPhone

对不起IM这是使用它。确保您的班级拨打UIAlertView确实符合UIAlertViewDelegate代表。

1

您需要将UIAlertViewdelegate属性设置为self而不是nil并在头中实现协议。

头文件:

@interface MyViewController : UIViewController <UIAlertViewDelegate> 

另外,请检查buttonIndex。目前(执行上述操作之后),如果按下任何按钮,将打开URL。

- (void)alertView: (UIAlertView *)alertView clickedButtonAtIndex: (NSInteger)buttonIndex 
{ 
    if (buttonIndex != [alertView cancelButtonIndex]) 
    { 
     //open url 
    } 
} 
+0

应该是如果(buttonIndex = [alertView cancelButtonIndex]!)!! –