ツールバーオーバーレイ上にプログラムで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を考慮する限り、すべて問題ありません。言うまでもなく、そうではありません。
また、このコードが実装されているViewControllerにNewViewControllerの.hファイルが正しく配置されています。