2010-11-29 4 views
0

私はUINavigationControllerを持っています。 pushViewControllerを使用してスタックにプッシュしたUIViewControllerがあります。以前のView Controllerには、単に「Cancel」というタイトルのbackBarButtonItemがあります。UINavigationControllerはバックボタンで表示をポップしません

[キャンセル]をタップすると、新しいビューが正しくアニメーション表示されますが、ナビゲーションバーはビューがポップされたようにアニメーションされますが、新しいビューは消えません。どこかでデリゲートを実装する必要はありますか?

答えて

1

まずUIBarButtonItemのカスタムビューとしてUIButtonを考慮すると、カスタムビューの1 UIBarButtonItemを作成し、その後UIButtonを作成し、これを試してみてください。

ビューコントローラーをポップするために、ボタンからターゲットイベントを考えてみましょう。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 35, 35);
[button setImage:[UIImage imageNamed:@"dots.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(backBarButton:) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];

self.navigationItem.leftBarButtonItem = backBarButton;

- (void)backBarButton:(id)sender {


NSLog(@"%s", __FUNCTION__);
self.navigationController.navigationBarHidden = YES;
[self.navigationController popViewControllerAnimated:YES];
}

+0

私はそれは単純な答えかもしれないと思います。 [self.navigationController popViewControllerAnimated:YES]を追加するだけです。ボタンをクリックしたイベントを呼び出すと問題が解決します。 – marionmaiden

関連する問題