2009-03-27 13 views
8

私は、ナビゲーションコントローラで使用される戻るボタンを隠す方法を持っています。これは、現在のビューを管理しているコントローラではなく、以前のコントローラによって設定されているため、取得するのが難しくなります。編集モードでこれを行う必要があったので、ユーザーが画面から離れてしまうのを防ぐことができました。これよりもbackBarButtonItemを非表示にする良い方法はありますか?

if(self.editing) { 
    // Get rid of the back button 
    UIView *emptyView = [[UIView alloc] init];; 
    UIBarButtonItem *emptyButton = [[[UIBarButtonItem alloc] initWithCustomView:emptyView] autorelease]; 
    [self.navigationItem setLeftBarButtonItem:emptyButton animated:YES]; 
} else { 
    // Restore the back button 
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];   
} 

これを行うより良い方法はありますか?

答えて

44

使用ボタン

[self.navigationItem setHidesBackButton:YES] 

使用このボタンを戻って表示するように

[self.navigationItem setHidesBackButton:NO] 
+2

ありがとう、ありがとう。小さな違いが1つあります。アニメーションはありません。私はこれらのバージョンでそれを解決した: [self.navigationItem setHidesBackButton:YES animated:YES]; [self.navigationItem setHidesBackButton:NO animated:YES]; –

+0

このコードをViewControllerに入れてください。ここでは、元の質問に必要な以前のコントローラではなく、ボタンを非表示にします。 –

1

ここで私は編集が有効になっている場合、[戻る]ボタンを表示し、非表示にするには、私のビューコントローラでの使用方法がありますが戻って非表示にするには、この無効:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    if (editing) { 
     // Disable the back button 
     [self.navigationItem setHidesBackButton:YES animated:YES]; 
    } 
    else { 
     // Enable the back button 
     [self.navigationItem setHidesBackButton:NO animated:YES]; 
    } 

    [super setEditing:editing animated:animated]; 
} 
0

bの(強くない)デフォルトのコンセントを作るストーリーボードからあなたのView Controllerにarボタンを押します。 左/右のバーボタンをnilに設定したときに、参照を緩めるのが目的ではありません。

関連する問題