14

BarButtonスルー Interface Builderの左側にアイテムを追加しましnav.barた。コードでは、これをテーブル ビューの編集モードでのみ表示したいと考えています。leftBarButtonItemしかし、 (like: )を設定する隠しプロパティが見つかりませんでしたself.navigationItem.leftBarButtonItem.hidden = YES

enabled私はプロパティを設定することしかできません。の非表示と表示のプロパティを制御する方法を知っている人はleftBarButtonItem、助けてください。

4

11 に答える 11

61

これはうまくいきます

self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = YES;      
于 2009-11-10T23:27:04.780 に答える
8

それを「隠す」唯一の方法は、それをゼロにすることだと確信しています。

self.navigationItem.leftBarButtonItem = nil;

あなたの質問に対する完全な答えではありませんが、それは基本的にボタンを非表示にするのではなく削除するためです。再作成するか、元のボタンを保持して、leftBarButtonItem を UIBarButtonItem に戻す必要があります。

于 2009-08-04T08:43:19.080 に答える
5

使用できます

// Hide
self.navigationItem.leftBarButtonItem = nil;

// Show
self.navigationItem.leftBarButtonItem = self.myBarButtonItem

重要なのは、 nilling する前に、ボタン項目への強力な参照があることを確認することですleftBarButtonItem

@property (strong, nonatomic) IBOutlet UIBarButtonItem *myBarButtonItem;
于 2014-09-11T18:38:37.470 に答える
3

以下に独自の「非表示」関数を作成しました。

- (void)hideClearButton:(BOOL)hide {

    if (hide) {
        self.navigationItem.leftBarButtonItem = nil;
    }
    else {
        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
                                                 initWithTitle:NSLocalizedString(@"Clear", @"Recents")
                                                 style:UIBarButtonItemStylePlain
                                                 target:self action:@selector(clearAll:)];

    }
}

次のように呼び出すことができます。

[self hideClearButton:YES]; //hide it

また

[self hideClearButton:NO];  //show it
于 2013-01-30T15:17:31.507 に答える
2

ドキュメントには、バー項目に隠しプロパティがあることを示唆するものは何もありません。

設定しない理由

self.navigationItem.leftBarButtonItem = nil; 

ユーザーが編集していないときは、設定します

self.navigationItem.leftBarButtonItem = whateverBarButtonItem; 

ユーザーが編集しているとき?これには、毎回ボタンを再作成するか、ビューのライフサイクルの間保存する必要があります。どちらもそれほど苦痛ではありませんが、.hidden プロパティほど簡単ではありません。

于 2009-08-04T08:47:03.253 に答える
1

使用できます

[self.navigationItem.leftBarButtonItem setEnabled:TRUE];

他に隠す方法がないからです。無効にするだけです。

于 2012-11-14T18:59:07.617 に答える
1

非表示/無効にするには

[self.navigationItem.leftBarButtonItem setEnabled:FALSE];

表示/有効にするには

[self.navigationItem.leftBarButtonItem setEnabled:TRUE];
于 2014-01-18T13:48:10.677 に答える