简单的UIButton总是在触摸时使我的应用程序崩溃



我有一个奇怪的问题。在我看来,我有两个分段控件和一个按钮。分段控件工作得很好,但当我触摸按钮时,它会崩溃。
NSLog将不再被调用。

PageViewController.h
paintingOptions = [[UIButton alloc] initWithFrame:CGRectMake(200,30,100,100)];
[paintingOptions setTitle:@"Ok" forState:UIControlStateNormal];
[paintingOptions setBackgroundColor:[UIColor blackColor]];
[paintingOptions addTarget:self action:@selector(showPaintingOptions:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:paintingOptions];
-(void) showPaintingOptions: (id) sender {
   NSLog(@"Button pressed");
}

关于如何解决这个问题,有什么提示吗?

调试:

调试输出只显示(gdb)。Xcode给我看了这行:

PDFViewController.h
- (UIView *)view {
    return self.scrollView; }
0x32c37102  <+0014>  ldr    r1, [pc, #16]   (0x32c37114 <-[UIViewController nextResponder]+32>)

但此功能在另一个视图控制器中。所以我有按钮的视图是这个滚动视图的子视图。

将PageViewController添加到PDFViewController:

- (void)loadScrollViewWithPage:(int)page
{
if (page < 0)
    return;
if (page >= kNumberOfPages)
    return;
// replace the placeholder if necessary
PageViewController *controller = [viewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null])
{
    //page+1 cause CGPDF indexing starts with 1
    controller = [[PageViewController alloc] initWithPageNumberAndUrl:page+1: [chapter urlOnFilesystem]];
    [viewControllers replaceObjectAtIndex:page withObject:controller];
    [controller release];
}
// add the controller's view to the scroll view
if (controller.view.superview == nil)
{
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    controller.view.frame = frame;
    [scrollView addSubview:controller.view];

}
}

从崩溃日志来看,-(void)showPaintingOptions:(id)sender不在目标自身中。请确保。

最新更新