我创建了一个显示alertview的通用方法方法。我已附上我的代码以供审核。 我试图验证三个uitextfields,如果无效,将相关信息放在uialertview方法中使用的实例变量中。你可以看到我通过代码散布了大量的nslog语句。方法开头和结尾的nslog都显示发生错误的相关信息。当我点击模拟器屏幕中的按钮设置此动画时,没有显示消息,但屏幕背景为浅灰色,将变为深灰色。
以下是代码:
- (void)SendErrorMessage
{
NSLog(@"Starting SendErrorMessage");
NSLog(@"initWithTitle = %@", self.alertViewTitleText);
NSLog(@"message = %@", self.alertViewMessageText);
NSLog(@"cancelButtonTitle = %@", self.alertViewCancelButtonText);
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:self.alertViewTitleText
message:self.alertViewMessageText
delegate:nil cancelButtonTitle:
self.alertViewCancelButtonText
otherButtonTitles:nil];
[alert show];
NSLog(@"Finished SendErrorMessage");
return;
}
对此的任何帮助将不胜感激。
行,
我现在很困惑。我进入代码并在[alert show]下面添加了以下代码: //阻挡5秒钟 [NSThread sleepForTimeInterval:5.0];
我这样做是为了查看警报视图是否实际显示为快速可见。不,根据我的日志,程序会持续5秒,然后继续使用程序逻辑。我也用uialertview取代了 一个uiactionsheet,看看它是否会显示uialertview没有的位置。再一次,nope,它们都不会显示在模拟器屏幕上。
这是我的.h文件中的界面声明:
@interface BeginningScene:UIViewController,
(小于)UIActionSheetDelegate,
UITextViewDelegate,
UIAlertViewDelegate(大于)
再次感谢您的帮助,我们将非常感谢任何想法。
答案 0 :(得分:2)
你确定这是在主线程上运行吗? 调用sendErrorMessage
时尝试使用它[self performSelectorOnMainThread:@selector(sendErrorMessage)];
跳过return语句,没用。
无论如何,试试这段代码并将方法复制到你的头文件中,注意小写字母S,只是一个偏好。
- (void)sendErrorMessage
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Title"
message:@"message"
delegate:nil cancelButtonTitle:
@"OK"
otherButtonTitles:nil];
[alert show];
[alert release]; // if you are not using ARC
}
答案 1 :(得分:0)
您可以在将显示UIAlertView(.h头文件)的类中尝试以下内容:
@interface ViewController : UIViewController <UIAlertViewDelegate>
然后,在.m实现中,在创建UIAlertView时将委托设置为self
:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:self.alertViewTitleText
message:self.alertViewMessageText
delegate:self cancelButtonTitle:
self.alertViewCancelButtonText
otherButtonTitles:nil];
希望这有帮助。