iphone - 在 viewWillAppear 中添加 AlertView,iPhone

标签 iphone objective-c crash alert terminate

我试图在 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/

    相关文章:

    java - 无法实例化 Activity ComponentInfo 空指针异常

    objective-c - 模拟器名称在 Xcode 6.2 中显示为 id 而不是 os 名称

    iphone - 如何将表格单元格分隔符制作成我们想要的 View

    ios - 如何从 POVoiceHUD 播放录制的音频文件

    ios - 在 XMPPFramework 中发送消息

    android - OnClickListener 导致应用程序崩溃

    iphone - 来自图像的自定义 UIToolBar

    iphone - 如何在UIStepper上实现KVO

    html - 将嵌套的粗体斜体 HTML 标签转换为 NSAttributedString

    java - 为什么我得到 "Attempt to invoke interface method ' int android.database.Cursor.getCount( )' on a null object reference"?