我在工具栏覆盖层上以编程方式制作了一个 barbuttonitem。当我的相机被访问时,所有这些都会出现。按钮功能正常,选择器完全能够调用它。
这是 .m 中的叠加层,看看 doneButton 选择器。
- (UIView*)CommomOverlay {
//Both of the 428 values stretch the overlay bottom to top for overlay function. It
doesn't cover it.
UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,420)];
UIImageView *FrameImg = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,420)];
[FrameImg setImage:[UIImage imageNamed:@"newGraphicOverlay.png"]];
FrameImg.userInteractionEnabled = YES;
UIToolbar *myToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 428, 320, 50)];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self
action:@selector(doneButtonPressed)];
[myToolBar setItems:[NSArray arrayWithObjects: cancelButton, flexiSpace2, flexiSpace,
doneButton, nil] animated:YES];
[view addSubview:FrameImg];
[view addSubview:myToolBar];
return view;
}
这是我用于 void 函数的方法。
//NewViewController is the nib I want to bring up when done is clicked.
-(void)doneButtonPressed {
NewViewController *UIView = [[NewViewController alloc] initWithNibName:nil bundle:nil];
UIView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:UIView animated:NO];
[UIView release];
NSLog(@"Acknowledged!");
}
正在调用该按钮,但没有任何反应。如您所见,我添加了一个 NSLog 函数来查看它是否被调用。单击按钮时,日志中会显示“已确认”,因此选择器没有问题。当我使用按钮时,应用程序也不会崩溃,如果我做了一些严重错误的编码(实际上我什至没有收到任何警告),应该会发生这种情况,就 Xcode 的考虑而言,一切都很好,不用说不是。
我还将 NewViewController 的 .h 文件正确放置在正在实现此代码的视图控制器中。