0
ナビゲーションバーの上部に情報ボタンを追加しようとしています。情報ボタンは、ユーザーを情報ビューに誘導します。次のコードはiPhoneのデフォルト情報ボタンをナビゲーションバーに追加します。これは、RootViewController.mのviewDidLoad関数の内部に配置されます。ナビゲーションバーに情報アイコンを追加し、showInfoViewメソッドを実装する方法は?
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
さて、showInfoView方法を実装する必要があり、次のコードが使用されます。
- (IBAction)showInfoView:(id)sender {
// Create the root view controller for the navigation controller
// The new view controller configures a Cancel and Done button for the
// navigation bar.
InfoViewController *addController = [[InfoViewController alloc]
initWithNibName:@"InfoView" bundle:nil];
// Configure the RecipeAddViewController. In this case, it reports any
// changes to a custom delegate object.
addController.delegate = self;
// Create the navigation controller and present it modally.
UINavigationController *navigationController = [[UINavigationController alloc]
initWithRootViewController:addController];
[self presentModalViewController:navigationController animated:YES];
// The navigation controller is now owned by the current view controller
// and the root view controller is owned by the navigation controller,
// so both objects should be released to prevent over-retention.
[navigationController release];
[addController release];
}
しかし、プログラムのビルドと実行時に、中に情報ボタン結果をクリックプログラムがクラッシュする
誰もこの問題に遭遇しましたか?私は広範囲に調査しましたが、showInfoViewメソッドを実装するのに問題がある人はいませんでした。
は、次のエラーがスローされていれば動作するはずです:***終端'UIButton createViewForNavigationItem:]:インスタンスに送信された認識できないセレクタ0x4b51bb0'、理由: 'UIButton createViewForNavigationItem:':未知のセレクタ 'NSInvalidArgumentException' – Richard