デフォルトでは、戻るボタンはテキストとしてビューコントローラのタイトルを使用します。ビューコントローラーのタイトルを変更せずに戻るボタンのテキストを変更できますか?タイトルが長すぎて表示できないビューコントローラーがあり、この場合は「戻る」だけを戻るボタンのキャプションとして表示したいので、これが必要です。
私はうまくいかなかった以下を試しました:
self.navigationItem.leftBarButtonItem.title = @"Back";
ありがとう。
デフォルトでは、戻るボタンはテキストとしてビューコントローラのタイトルを使用します。ビューコントローラーのタイトルを変更せずに戻るボタンのテキストを変更できますか?タイトルが長すぎて表示できないビューコントローラーがあり、この場合は「戻る」だけを戻るボタンのキャプションとして表示したいので、これが必要です。
私はうまくいかなかった以下を試しました:
self.navigationItem.leftBarButtonItem.title = @"Back";
ありがとう。
回答:
試す
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
私は、UINavigationItemに関する AppleのドキュメントのbackBarButtonItemドキュメントを調べるとわかりました。
マークWのアプローチは、どのコントローラーに適用するかがわかったときにうまく機能しました。これがナビゲーションスタックの場合:
(bottom) ControllerA -> ControllerB (top)
...そして、ControllerBが一番上にあるときに表示される戻るボタンにControllerAの短いタイトルを付けたい場合は、プロパティの変更をControllerAに適用します。
そのためself.title
、他の左/右バーボタンセッターとは異なり、のコンテキストにあります。
ストーリーボードでそれを行うことができます。戻る先のビューコントローラー(長いタイトルのビューコントローラー)を探し、そのナビゲーションアイテムを選択して、属性インスペクターを開き(Alt + Cmd + 4)、カスタムの[戻る]ボタンのタイトルを挿入します。
マルコに感謝...それは私を助けました...
これが私がやったことです。
tableViewを使用して別のビューに移動する場合...コードを入力します。
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
あなたのdidSelectRowAtIndexPath
方法で...最初のコントローラーの...コントローラーA
コントローラーBに移動すると、ボタンのタイトルは「戻る」になります。
戻るボタンは、親のビューコントローラーのタイトルからテキストを引き出します。
親ビューコントローラー([戻る]ボタンをタップすると表示されるビューコントローラー)で、独自のタイトルを[戻る]ボタンの目的のテキストとして設定します。
たとえば、RootViewController
クラスがあるとします。テーブルビューのセルをクリックすると、のインスタンスがプッシュされますSecondViewController
。SecondViewController
インスタンスの「戻る」ボタンに「ホーム」と表示させます。
RootViewController.mのviewDidLoad
メソッドで:
self.title = @"Home";
SecondViewController.mのviewDidLoad
メソッドで:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
戻るボタンに「戻る」と表示させたい場合は、親ビューコントローラのタイトルをに設定し@"Back"
ます。
これは私にとってより効果的です。試してください:
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
ストーリーボードを使用している場合:
つまり、お楽しみください...
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc]
initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
これでうまくいきました。
親ビューコントローラーで、ビューの読み込み時に戻るボタンを設定します。
- (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];
}
autorelease
最後に最新のiOSバージョンを含める必要がないことに注意してください。
お役に立てれば!
[self.navigationController.navigationBar.backItem setTitle:@"back"];
わたしにはできる。「戻る」を別のものに置き換えることができます。
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
なぜこれらの答えが最初はうまくいかないのか、ようやくわかりました。タイトルを絵コンテに設定しました。コードにタイトルを設定したとき。できます!
self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
私の解決策は、ビューコントローラーがナビゲーションスタックにプッシュされたときにタイトルを設定し、プッシュされたvcが閉じる前にデリゲートメソッドを使用してタイトルをリセットすることでした。
したがって、次のように他のビューコントローラーをプッシュすると、ビューコントローラーの呼び出しにタイトルの変更が含まれます。
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";
}
[戻る]ボタンのテキストを変更して元の左矢印の形状のままにするだけでなく、ユーザーが[戻る]ボタンをクリックしたときに何かを実行したい場合は、「CustomNavigationController」を確認することをお勧めします。
//以下のように前のビューコントローラーでタイトルを設定することでこれを実現できます
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"
}
戻るボタンのタイトルを変更するには、以下のコードを参照してください
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`
Swift5では、backBarButtomは編集できません。したがって、最初にbackBarButtomを非表示にし、次にカスタマイズされたleftbarButtomを使用してbackBarButtomを置き換える必要があります。詳細なソリューションは次のとおりです:https : //stackoverflow.com/a/63868300/13939003