0

左側に表示されているデフォルトのナビゲーションを非表示にし、独自のカスタムボタンを追加したいナビゲーションベースのアプリケーションが1つあります。次の2つのコードを記述しました。

コードサンプル1:

- (void)viewDidLoad {
    appDelegate=[(FoodAppDelegate *)[UIApplication sharedApplication]delegate];
UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"Volunteers_back.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 86, 30)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];        

ただし、これはデフォルトのナビゲーションボタンを表示します。

2番目のコードサンプル:

self.navigationItem.hidesBackButton=YES;
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"DontWorryAboutThis" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
    [barButton setImage:[UIImage imageNamed:@"Volunteers_back.png"]];
    [self.navigationItem setLeftBarButtonItem:barButton];

これは、ボタンのデフォルトとカスタムの両方が互いにオーバーラップしていることを示しています。誰かがここで何が問題なのか、またはこれを達成するためのサンプルコードを知っていますか?

4

1 に答える 1

1

戻るボタンを非表示にする必要はありません。leftBarButtonItemを置き換えると、そこにあるボタンが上書きされます。私はこのコードを使用していますが、いくつかのアプリでこれを実現するためにこのコードのみを使用しています。

UIBarButtonItem *btnCancel =
[[UIBarButtonItem alloc] initWithTitle: @"Cancel"
                                 style: UIBarButtonItemStylePlain
                                target: self
                                action: @selector(actionButtonCancel)];
self.navigationItem.leftBarButtonItem = btnCancel;
[btnCancel release];
于 2011-03-17T13:42:50.890 に答える