我只想在用户按下按钮时弹出通知。不需要服务器或计时器。我能找到的所有教程似乎都涉及这两者之一。
问问题
378 次
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 而想要更可定制的模式视图,请查看这两个名为 UAModalPanel和MJPopupViewController的优秀库。您可以查看有关这两个库的图像、演示和更多信息的链接,包括指向它们的 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 回答