5

ねえ、私はナビゲーションボタンの実装を含むいくつかの機能を継承するクラス(A)を書きました。クラスAには表示モードと編集モードの両方があります。編集モードのときにのみボタンを表示したいと思います。これまでのところ、このボタンを削除することはできませんでした。編集のためだけに別のクラスを作成したくはありません。

また、他のクラスはこの機能を継承しているので、親をいじりたくありません。

ボタンの作成に使用するコードは次のとおりです。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];    
UIImage *buttonImage = [UIImage imageNamed:@"button.png"];

[button addTarget:self 
               action:@selector(buttonPressed:) 
     forControlEvents:UIControlEventTouchUpInside];

button.bounds = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);

[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setTitle:NSLocalizedString(@"BUTTON", @"") 
            forState:UIControlStateNormal];

LPRBSLabel *buttonLabel = [[LPRBSLabel alloc] initWithStyle:UICustomeButtonTitle];
[button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, -5.0, 0.0)];

button.titleLabel.font = buttonLabel.font;
[button setTitleColor:buttonLabel.textColor forState:UIControlStateNormal];
[buttonLabel release];

UIBarButtonItem *barLeftInfoButton = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = barLeftInfoButton;
[barLeftInfoButton release];
4

4 に答える 4

14

私はそれを使用してそれを解決することができました:

self.navigationItem.leftBarButtonItem = nil;

私は心を凍らせ、ボタンが実際に作成される前に上記のステートメントを使用していました:-(

于 2011-02-28T12:13:47.900 に答える
8

NavigationItemのプロパティ「hidesBackButton」をyesに設定する方が簡単です。

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UINavigationItem_Class/Reference/UINavigationItem.html#//apple_ref/occ/cl/UINavigationItem

于 2011-05-17T17:55:23.630 に答える
0

考慮すべきもう 1 つのオプションは、機能させるまでボタンを無効にすることです。表示されますが、淡色表示になります。

self.navigationItem.leftBarButtonItem.enabled = NO;
于 2012-08-23T03:47:51.697 に答える
-3

ナビゲーション バーからボタンを削除するには、ボタンにタグを割り当て、以下のコードを記述します。

[[self.navigationController.navigationBar viewWithTag:0106] removeFromSuperview];
于 2016-06-28T10:30:07.160 に答える