1

このコードが機能しない理由を誰か教えてもらえますか?

self.backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.backButton setImage:[UIImage imageNamed:@"back_arrow.png"]
                 forState:UIControlStateNormal];
self.backButton.contentMode = UIViewContentModeCenter;
[self.backButton addTarget:self
                    action:@selector(backButtonAction:)
          forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backButton];
[navigationItem setLeftBarButtonItem:backButtonItem animated:NO];
navigationItem.hidesBackButton = YES;

編集:

には何も表示されませんleftBarButtonItem。それが問題です。

4

2 に答える 2

2

これはうまくいくはずです

CGRect rect = CGRectMake(10, 0, 30, 30);
self.backButton = [[UIButton alloc] initWithFrame:rect];
[self.backButton setImage:[UIImage imageNamed:@"back_arrow.png"]
                 forState:UIControlStateNormal];
self.backButton.contentMode = UIViewContentModeCenter;
[self.backButton addTarget:self
                    action:@selector(backButtonAction:)
          forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backButton];
self.navigationItem.leftBarButtonItem = backButtonItem;
self.navigationItem.hidesBackButton = YES;
于 2012-12-16T18:57:10.807 に答える
2

ドキュメントから:

"カスタム ボタン (UIButtonTypeCustom 型のボタン) を作成する場合、ボタンのフレームは最初に (0, 0, 0, 0) に設定されます。ボタンをインターフェイスに追加する前に、フレームをより適切な値。」

したがって、フレームを 2 行目に設定すると、次のように表示されます。

self.backButton.frame = CGRectMake(0, 0, 40, 20);
于 2012-12-16T19:15:11.360 に答える