web-dev-qa-db-ja.com

戻るボタンのテキストを変更する方法

デフォルトでは、戻るボタンは、テキストとしてビューコントローラーのタイトルを使用します。 View Controllerのタイトルを変更せずに戻るボタンのテキストを変更できますか?タイトルが長すぎて表示できないView Controllerがあるため、これが必要です。この場合、戻るボタンのキャプションとして「戻る」だけを表示したいと思います。

私は次のことを試しましたが、うまくいきませんでした:

self.navigationItem.leftBarButtonItem.title = @"Back";

ありがとう。

90

試してみる

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

Appleのドキュメントで INavigationItembackBarButtonItem ドキュメントを見ると、それがわかりました。

167
Marc W

Marc Wのアプローチは、どのコントローラーに適用するかを考え出すとうまくいきました。これがナビゲーションスタックの場合:

(bottom)  ControllerA -> ControllerB  (top)

... ControllerBが上にあるの場合に表示される戻るボタンでControllerAの短いタイトルを付けたい場合、プロパティの変更をControllerAに適用します。

したがって、self.title、他の左/右バーボタンセッターとは異なります。

97
Marco

ストーリーボードでできます。 (長いタイトルのある)ビューコントローラーに戻り、ナビゲーションアイテムを選択して、属性インスペクター(Alt + Cmd + 4)を開き、カスタムの戻るボタンタイトルを挿入します。

enter image description here

47
alyoka

おかげでマルコ...助けてくれた...

これが私がしたことです。

TableViewを使用してさまざまなビューに移動している場合...コードを入力します。

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

最初のコントローラーのdidSelectRowAtIndexPathメソッド...コントローラーA.

コントローラBに移動すると、ボタンのタイトルは「戻る」になります。

40
Ben Call

戻るボタンは、親View Controllerのタイトルからテキストを引き出します。

親のView Controller(戻るボタンをタップすると表示されるView Controller)で、戻るボタンの目的のテキストとして独自のタイトルを設定します。

たとえば、RootViewControllerクラスがあるとします。テーブルビューでセルをクリックすると、SecondViewControllerのインスタンスをプッシュします。 SecondViewControllerインスタンスの[戻る]ボタンに「Home」と表示させます。

RootViewController.mviewDidLoadメソッド内:

self.title = @"Home";

SecondViewController.mviewDidLoadメソッド内:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];    

戻るボタンに「戻る」と表示させたい場合は、親View Controllerのタイトルを@"Back";

12
Rose Perrone

これは私にとってはうまくいきます。試してください:

 self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] 
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
10
Felipe FMMobile

ストーリーボードを使用している場合:

  1. StoryBoardを開く
  2. [ドキュメントアウトライン]ウィンドウで、戻りたいViewControllerを見つけます。
  3. そのViewControllerのナビゲーション項目をクリックします
  4. 属性エクスプローラーで、戻るボタンの値をカスタムタイルに変更します

それだけです、お楽しみください...

9
AntonijoDev

そして、MonoTouchでは次のように動作します(親コントローラーのViewDidLoadで):

NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);
5
BillF

親View Controllerで、ビューがロードされたときに戻るボタンを設定します。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view.
    self.navigationItem.backBarButtonItem = 
       [[UIBarButtonItem alloc] initWithTitle:@"title" 
                                        style:UIBarButtonItemStylePlain 
                                       target:nil 
                                       action:nil];

}

最新のiOSバージョンの最後にautoreleaseを含める必要がないことに注意してください。

お役に立てれば!

3
Zorayr
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc]
  initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];

これは私のために働いた。

3
user1004911

あなたがタイトルを持ちたくない場合、これは私のために働いた!

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
1
gpichler
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
1
user2783798

[self.navigationController.navigationBar.backItem setTitle:@"back"];

わたしにはできる。 「戻る」を別のものに置き換えることができます。

1
ohmer

戻るボタンのタイトルを変更するには、以下のコードを参照してください

InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES];

//Below code changed back button title on InformationVC page.
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil];
self.navigationItem.backBarButtonItem = backBarButton;`enter code here`
0
Kiran K

私はついに、これらの答えが最初は私にとってうまくいかなかった理由を知りました。タイトルをストーリーボードに設定しました。コードにタイトルを設定したとき。できます!

self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
0
user2547667

//これは、以下に示すように前のView Controllerでタイトルを設定することで実現できます

override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for this view
        self.navigationItem.title = "My Title"

}

override func viewWillDisappear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for back button in next view 
        self.navigationItem.title = "Back"
}
0
John Carto

私の解決策は、View ControllerがNavigation Stackにプッシュされたときにタイトルを設定し、プッシュされたVCが閉じる前にデリゲートメソッドを使用してタイトルをリセットすることでした:

そこで、他のView Controllerを次のようにプッシュするときに、View Controllerを呼び出す際にタイトルを変更しました。

self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"];
self.pushedVC.delegate = self;   
[self.navigationController pushViewController:self.pushedVC animated:YES];
self.title = @"Back";

デリゲートコールバック関数(viewWillDissapearで呼び出します):

-(void)pushedVCWillClose:(PushedVC *)sender
{
    self.title = @"Previous Title";
}
0
Despotovic

[戻る]ボタンのテキストを変更して元の左矢印の形状を維持するだけでなく、ユーザーが[戻る]ボタンをクリックしたときに何かをしたい場合は、「 CustomNavigationController "。

0
jianpx