タイトルを leftBarButtonItem に設定する方法
-
13-11-2019 - |
質問
私は持っている 根 ViewControllerと 詳しい ビューコントローラー。detailedViewControllerにプッシュすると、ルートのものからタイトルを持つleftBarButtonItemを取得します。でも、タイトルは「戻る」だけにして、それ以上は何もしないでほしいです。では、どうすればよいのでしょうか?
これは役に立ちません
self.navigationItem.leftBarButtonItem.title = @"Back";
タイプ barButtonItem (たとえば、左矢印の 104) を作成し、それを leftBarButtonItem に設定するのは、ひどい決断です。
プッシュする前にrootViewControllerのタイトルを手動で変更する以外の方法はありますか?
解決
AppleのDoc:
BackBarButtonItem
バックボタンが必要なときに使用するバーボタン項目 ナビゲーションバー
@property(非原子的、保持)UIBARBUTTOTEM * BACKBARBUTTOTEM 議論
このナビゲーション項目が上のトップアイテムのすぐ下にあるとき スタック、ナビゲーションコントローラはバックボタンを導きます このナビゲーション項目からのナビゲーションバー。このプロパティがnilのとき、 ナビゲーションアイテムは、そのタイトルプロパティで値を使用して作成する 適切なバックボタンカスタムイメージを指定したい場合 [戻る]ボタンのタイトル、カスタムバーボタン項目を割り当てることができます (カスタムタイトルやイメージを使って)このプロパティへの代わりに。いつ バーボタン項目の設定、カスタムビューを割り当てないでください。 ナビゲーションアイテムは、バックバーボタンのカスタムビューを無視します とにかく。
だから、BarButtonItem(
– initWithTitle:style:target:action:
)を作成してそのプロパティに割り当てることができます。
UIBarButtonItem
(左または右)のカスタムイメージを持つ場合は、次のようなカテゴリ拡張を作成することをお勧めします。.//UIBarButtonItem+Extension.h + (UIBarButtonItem*)barItemWithImage:(UIImage*)image title:(NSString*)title target:(id)target action:(SEL)action; //UIBarButtonItem+Extension.m + (UIBarButtonItem*)barItemWithImage:(UIImage*)image title:(NSString*)title target:(id)target action:(SEL)action { UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height); button.titleLabel.textAlignment = UITextAlignmentCenter; [button setBackgroundImage:image forState:UIControlStateNormal]; [button setTitle:title forState:UIControlStateNormal]; [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem* barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button]; return [barButtonItem autorelease]; }
でとして使用します
.UIBarButtonItem* backBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"YoutImageName"] title:@"YourTitle" target:self action:@selector(doSomething:)];
他のヒント
やっと出すべてのシワを伸ばす、今日で簡単にします。
子どもの"戻る"ボタンのテキストの評価に基づいて設ける。これは当然のことで動きがあると考えます:場合はビューコントローラから到達することができ両親のバックボタンのテキストによるべきである押します。
テキストがはいつも同じです:
- 選択の親ビューのコントローラー 航項目 の編集者。
- のテキストの "戻る"ボタン 値とします。
そうしています。このビューコントローラーが押されたかによる新しいビューコントローラは、新しいビューコントローラこのテキストとしてます。
の場合はテキストでは:
- 選択の親ビューのコントローラー 航項目 の編集者。
- 入 一部の テキストの "戻る"ボタン 値とします。
- タイトルを設定しまする必要がある場合の変更 親会 ビューコントローラ:
self.navigationItem.backBarButtonItem.title = dynamicText;
やまれます。
を明確に設定することができるこの時の親ビューコントローラです。また時にだけ表示されviewコントローラーを押します。
ない場合は、テキストの "戻る"ボタン のデザイナーのロスをインスタンス化のコントローラを生み出さな self.navigationItem.backBarButtonItem
, すことはできませんセットのタイトル nil
オブジェクトです。すると思いますが、混乱の周辺のこの茎。
もちろん、プを作ることができるランタイム時において、がんの間ですでに実施しているものの絵コンテ/ペン先のが難しいのですが、デコーダです。
だいりんこうに書いたブログの課題となっています。あ 詳細.
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] init];
backButtonItem.title = NSLocalizedString(@"Back", nil);
self.navigationItem.backBarButtonItem = backButtonItem;
. わたしにはできる:
[self.navigationItem.leftBarButtonItem setTitle:@"Back"];
(戻る矢印画像とカスタム テキスト)