でUINavigationController
?
UINavigationController
たとえば、ユーザーが戻るボタンを押したときに がアニメーション化されないようにしたいとします。
でUINavigationController
?
UINavigationController
たとえば、ユーザーが戻るボタンを押したときに がアニメーション化されないようにしたいとします。
戻るボタンのタップ自体を傍受するつもりがなく、代わりに現在のView Controllerが消えるという行為を行う場合は、次を使用できます。
- (void)viewWillDisappear:(BOOL)animated {
if (self.isMovingFromParentViewController) {
// handle back button press
}
}
戻るボタンを使用したい場合は、独自のカスタムを作成UIBarButtonItem
し、それを現在のコントローラーの に設定できますleftBarButtonItem
。[self.navigationController popViewControllerAnimated:YES]
独自のロジックを実行し終わったら、必ず呼び出してください。
アプリケーションの ViewDidLoad に以下のコードを追加します。
UIButton *btnBack = [UIButton buttonWithType:UIButtonTypeCustom];
[btnBack setFrame:CGRectMake(0.0f, 0.0f, 55.0f, 35.0f)];
[btnBack addTarget:self action:@selector(backClicked:) forControlEvents:UIControlEventTouchUpInside];
[btnBack setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:btnBack];
self.navigationItem.leftBarButtonItem = backButton;
これにより、カスタムの [戻る] ボタンが作成されます。「Back.png」はOSと同じ画像です。
以下のコードを関数として追加します。これは RootViewcontroller にポップします。
- (void) backClicked:(id)sender {
// perform certain task
// If task is completed then call below LOC
[self.navigationController popToRootViewControllerAnimated:YES]; }