1

我只想在用户按下按钮时弹出通知。不需要服务器或计时器。我能找到的所有教程似乎都涉及这两者之一。

4

3 回答 3

1


UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelMessage];
[alertView show];

于 2012-07-18T03:18:07.790 回答
1

也许是这样的:

-(IBAction) buttonPressed: (UIButton *)sender{

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle: [NSString stringWithFormat:@"You pressed button %@", sender.tag]  
                                                    message: @"message" 
                                                   delegate: self 
                                          cancelButtonTitle: @"Ok" 
                                          otherButtonTitles: nil]];
    [alert show];
}

它看起来像这样:

在此处输入图像描述

您还可以稍微自定义警报视图,因此它可能具有用于文本输入的文本字段:

在此处输入图像描述

使用 UIAlertViews,您还可以实现协议方法,例如– alertView:clickedButtonAtIndex:– alertView:willDismissWithButtonIndex:根据他们按下的警报按钮执行不同的操作。

这是关于 UIAlertViews 和实现其协议方法的一个很好的教程:http: //mobile.tutsplus.com/tutorials/iphone/uialertview/

如果您不想使用 UIAlertViews 而想要更可定制的模式视图,请查看这两个名为 UAModalPanelMJPopupViewController的优秀库。您可以查看有关这两个库的图像、演示和更多信息的链接,包括指向它们的 github 页面的链接,您可以在其中下载它们。

希望这可以帮助!

于 2012-07-18T03:19:35.917 回答
1

确保警报显示在处理所有 UI 的主线程上很重要。否则,您可能会遇到一些奇怪的错误和/或崩溃。您可以使用 GCD 调度到主线程:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert Test" 
                                          message:@"This is an alert test." 
                                          delegate:self 
                                          cancelButtonTitle:@"Cancel" 
                                          otherButtonTitles:@"OK", 
                                          nil];

dispatch_async(dispatch_get_main_queue(), ^{ 
    [alert show];
});
于 2012-07-18T03:26:28.027 回答