2

現在の UIViewController の backBarButtonItem を介してページを離れるときに、確認の UIAlertView を送信したいと思います。

これを行うために、既存の戻るボタンを新しい UIBarButtonItem に置き換えました。

- (void) setBackButton {
NSArray * viewControllers = self.navigationController.viewControllers;
UIViewController * previousController = [viewControllers objectAtIndex:[viewControllers count]-2];

self.backButton = [[UIBarButtonItem alloc] initWithTitle:previousController.title style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonPressed)];
previousController.navigationItem.backBarButtonItem = self.backButton;

}

したがって、問題は次のとおりです。現在の UIViewController で @selector(backButtonPressed) へのコールバックを取得できないようです。self.navigationItem.leftBarButtonItem に self.backButton を配置すると機能しますが、ボタンは矢印ではなく長方形です。

戻る代わりに @selector(backButtonPressed) メソッドを呼び出すことを可能にする、元の戻るボタンとまったく同じように見えるボタンを取得するにはどうすればよいですか?

4

1 に答える 1

0

矢印の形をしたボタンの場合、UIBarButtonItem をカスタム ビュー (矢印の形をした画像を持つ) で開始する必要があります。ただし、ナビゲーション コントローラーで戻るボタンのアクションを上書きすることはあまり一般的ではありません。その代わりに、画面をモーダルに表示し、そこにバー ボタン (完了、キャンセル) を追加する必要があります。お役に立てれば!

于 2012-11-28T19:06:01.703 に答える