我试图在 View 出现后立即显示警报 View (不使用按钮)。在 viewcontroller.m 我有:
- (void) viewWillAppear:(BOOL)animated
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"User Information" message: @"Hello"
delegate: self cancelButtonTitle:nil otherButtonTitles: @"Continue", nil];
[alert show];
[alert release];
}
在 viewcontroller.h 我有:
IBOutlet UIView *alert;
我没有对我的 .xib 文件做任何事情。
在模拟器上运行时,我在控制台中得到以下信息:
2009-11-30 23:41:36.079 BatteryApp [867:20b] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“BatteryAppViewController” Nib ,但 View 导出没有设置。
有什么想法我出错了,与我的 xib 有关吗?
编辑//我将警报连接到我的 xib 中的新 View ,仍然没有运气
最佳答案
问题是两个核心动画(一个用于查看当前 View ,一个用于显示警报)重叠。您需要按照以下解决方法将这两个动画移动分开:
viewDidAppear
中,而不是 viewWillAppear
[alert performSelector:@selector(show) withObject:nil afterDelay:0.0]
.这可确保在完成当前动画后发出警报。 您可能需要小心释放
alert
还没有。如果我是你,我会有一个单独的方法(例如 showHelloAlert),然后从 viewDidAppear 调用它:- (void)viewDidAppear: (BOOL)animated {
[self performSelector:@selector(showHello) withObject:nil afterDelay:0.0f];
[super viewDidAppear:animated];
}
关于iphone - 在 viewWillAppear 中添加 AlertView,iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1823212/