1

次の UIBarButton アイテムがあります。

  UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 100.0f, 45.0f, 30.0f)];
    [backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchDown];
    backButton.titleLabel.text = @"Back";
    backButton.titleLabel.font = [UIFont fontWithName:@"texgyreadventor-regular.otf" size:20.0f];
    backButton.titleLabel.textColor = [UIColor whiteColor];
    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    _backItem = backItem;

他の方法では、次のようにナビゲーション バーに配置するように設定しました。

[self.navigationItem setLeftBarButtonItem:_backItem];

これまでのところ、すべてが期待どおりに機能しています。しかし、上部のナビゲーション バーに追加する直前に、そのテキストを変更したいと思います。これが私がやろうとしたことの1つです:

self.navigationItem.leftBarButtonItem.title = @"NEW TITLE";

ただし、これは機能しません。実行時にオンザフライでタイトルを追加するにはどうすればよいですか?

4

4 に答える 4

7

次を使用して、ボタンに再度アクセスできます。

UIView* view = self.navigationItem.leftBarButtonItem.customView;
UIButton* button = (UIButton*)view;
[button setTitle: @"NEW TITLE" forState: UIControlStateNormal];

iOS Nayefcを開始していますか?ここ数日、たくさんの質問があるようです:)

于 2012-06-15T13:26:21.757 に答える
3

見ている人(今の私のように)にとって、iOSの新しいバージョンでは、受け入れられた答えは機能しなくなりました。これは、読み取り/書き込みString?(Swift の場合) またはNSString(Obj-C の場合) である barButton.title になりました。

于 2015-03-11T16:37:55.600 に答える
-4

それ以外の

self.navigationItem.leftBarButtonItem.title = @"NEW TITLE";

使用する

UIButton *backButton = (UIButton *)self.navigationItem.leftBarButtonItem.customView;
backButton.titleLabel.text = @"changed";

更新: ナビゲーション バーに追加する前にタイトルを変更する場合は、次の手順を実行します。

UIButton *backButton = (UIButton *)_backItem.customView;
backButton.titleLabel.text = @"changed";
于 2012-06-14T18:12:13.300 に答える
-6

修正は次のとおりです。

 [button setTitle:@"Back" forState:UIControlStateNormal];

状態を定義する必要があります。

于 2012-06-18T18:16:27.757 に答える