0

在我的应用程序中,我实现了推送通知功能,并且正在收到通知。我在 appDelegate 文件中使用了以下代码。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    for (id key in userInfo) {
        NSMutableArray *array = [userInfo objectForKey:key];
        NSString *message = [NSString stringWithFormat:@"%@",[array valueForKey:@"alert"]];
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"iPhoneApp" message:message delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
        [alert show];
        [alert release];
    }    
}

我想对推送通知警报的 OK 按钮单击事件执行操作(当应用程序运行时)。我在这个应用程序中有三个视图控制器。那么我应该在哪个类中添加代码

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

4

1 回答 1

0

delegate在您设置为该特定 UIAlertView的同一类中。在您当前的情况下,AppDelegate-clickedButtonAtIndex:.

如果您想在您拥有的 3 个控制器之一中接收点击事件。您必须将该特定控制器设置为您的委托UIAlertView

    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"iPhoneApp" message:message delegate:myViewController cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
    [alert show];
    [alert release];

如您所见,我指定myViewController为代表。myViewController应该符合UIAlertViewDelegate协议并实现-clickedButtonAtIndex:方法。现在,一旦您选择了其中一个按钮,您就会接到电话myViewController

于 2012-06-12T09:15:41.137 回答