IOSナビゲーションバー戻るボタンのタイトルを変更

2223 ワード

午後また新しい方法を見つけました.この方法はいいですね.しばらく異常を発見していません.
   新しく書かれたAppではUINAvigationControllerを使用して各ページをナビゲートする必要がありますが、1段目のページのtitleが長いため、2段目のページに入ってボタンleftButtonItemに戻るtitleが長くなり、NavigationBarのスペースが大きく、美しくないため、コードを使用してleftButtonItemのtitleテキストを修正します.self.navigationItem.leftBarButtonItem.title=@"戻る";それともself.navigationItem.backBarButtonItem.title=@"戻る";いずれも効果がなく、titleテキストは常に変化しません.ネットで検索してみると、以下の解決方法が得られ、比較的簡単で、特記は以下の通りです.
    1ページ目のviewDidLoadメソッドに次のコードを追加します.
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
  temporaryBarButtonItem.title = @"  ";
  self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
  [temporaryBarButtonItem release];    

つまり、新しいボタンでナビゲーションを行う前に元の戻りボタンを置き換えればいいのです.
以下のように設定できますが、そのボタンが四角になって画像を追加して修正できるという欠点があります.
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                   style:UIBarButtonItemStyleBordered
                                                                  target:self
                                                                  action:@selector(backToPrevious)];
    
    self.navigationItem.leftBarButtonItem = backButton;
    [backButton release];

- (void)backToPrevious
{
    [self.navigationController popViewControllerAnimated:YES];
}

画像を追加する関連コードは以下の通りです.
 UIButton *leftButton = [[UIButtonalloc] initWithFrame:CGRectMake(0, 0, 60, 40)];
    [leftButton setTitle:@"  "forState:UIControlStateNormal];
    [leftButton setImage:[UIImageimageNamed:@"UINavigationBar.png"] forState:UIControlStateNormal];
    [leftButton setImage:[UIImageimageNamed:@"UINavigationBar.png"] forState:UIControlStateHighlighted];
    [leftButton addTarget:selfaction:@selector(leftAction:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *leftItem = [[UIBarButtonItemalloc] initWithCustomView:leftButton];
    [leftButton release];
    self.navigationItem.leftBarButtonItem = leftItem;
    [leftItem release];
元帖住所:http://hi.baidu.com/givingmore/item/134c50e3ef6fcea52e140b71