我只想在用户按下按钮时弹出通知。无需服务器或计时器。我能找到的所有教程似乎都涉及这两个教程中的一个。
答案 0 :(得分:1)
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancelMessage];
[alertView show];
答案 1 :(得分: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而是想要更加可自定义的模态视图,请查看这两个名为UAModalPanel和MJPopupViewController的优秀库。您可以查看两个库中图像,演示和更多信息的链接,包括可以下载它们的github页面的链接。
希望这有帮助!
答案 2 :(得分: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];
});