0

我有一个错误警报视图,当我单击“确定”时会崩溃

- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setTitle:@"OK" forState:UIControlStateNormal];
    [button setFrame:CGRectMake(10, 80, 266, 43)];  
    [button addTarget:self action:@selector(dismissError:) forControlEvents:UIControlEventTouchUpInside];
    [alertView addSubview:button]; //This is a subview of 
    //...other stylings for the custom error alert view

    errorWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    errorWindow.windowLevel = UIWindowLevelStatusBar;
    errorWindow.hidden = NO;        
    [errorWindow addSubview:alertView];
    [errorWindow makeKeyAndVisible];

}

此 alertView 位于自定义 ErrorAlert:UIView 中。

此警报显示正常。

但是,当单击“确定”按钮时,应用程序崩溃,它从未到达 - (void)dismissError:(id)sender;

我是否在错误的位置添加了按钮?(它给出了通用的 int retVal=......EXC_BAD_ACCESS)

4

1 回答 1

4

除非您在外部显示器上显示某些内容,否则不应创建新的 UIWindow。

在 iOS 中,窗口没有标题栏、关闭框或任何其他视觉装饰。窗口始终只是一个用于一个或多个视图的空白容器。此外,应用程序不会通过显示新窗口来更改其内容。当您想要更改显示的内容时,您可以更改窗口的最前面的视图。

查看适用于 iOS的View Programming Guide

于 2012-05-09T20:08:04.940 回答