3

項目をナビゲーション コントローラーにプッシュすると、戻るボタンに「戻る」とだけ表示されるという問題が発生しています。ブレークポイントを設定して、スタック上のナビゲーション項目を確認してみました。スタック上のすべてのアイテムには、nil の backButtonItem とタイトルがあります。backBarButtonItem を設定しようとしましたが、「戻る」と言ってまだ取得しています。他の誰かがこの問題を抱えていましたか?

4

4 に答える 4

8

iOS 7 は、現在のナビゲーション項目のタイトルに合わせて、戻るボタンのタイトルを自動的に「戻る」に置き換えるか、タイトルを完全に削除します。タイトルを短くする以外は、おそらく何もしないでください。

于 2013-09-23T18:47:11.453 に答える
0

iOS 7 では、前のコントローラーのナビゲーション項目のタイトル プロパティによって、次のコントローラーの戻るボタンが変更されます。基本的に、戻るボタンのタイトルは前のページのタイトルです。

ただし、戻るボタンに前のコントローラーのタイトルとは異なるタイトルが必要な場合は、そのコントローラーのナビゲーション項目のタイトル ビューにUILabel. 次に、そのコントローラーのナビゲーション項目のタイトル プロパティを、戻るボタンが表示するものに設定できます。適切なフォントとサイズでラベルを作成するコード例:

NSString * title = @"Title of page";
NSDictionary * titleAttribs = navigationController.navigationBar.titleTextAttributes;
UILabel * titleLabel = [[UILabel alloc] init];
NSAttributedString * titleAttrString = [[NSAttributedString alloc] initWithString:title attributes:titleAttribs];

// the attributed text misses the bold attribute (because bold is not considered as font attribute in Cocoa)
titleLabel.attributedText = titleAttrString;

// get font and make it bold
UIFont * font = titleLabel.font;
UIFontDescriptor * fontDesc = [font.fontDescriptor
                               fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold];
UIFont * boldFont = [UIFont fontWithDescriptor:fontDesc size:0]; // size:0 means keep the size as is
titleLabel.font = boldFont;
[titleLabel sizeToFit];


anotherController.navigationItem.titleView = titleLabel; // this will be the title in NavBar
anotherController.navigationItem.title = @"Go back"; // this will be the title of the back button

[navigationController pushViewController:anotherController animated:YES];
于 2014-02-14T18:34:56.557 に答える
0

UIViewController各のtitleプロパティを、戻るボタンに表示する内容に設定する必要があります。

関連:この動作について説明しているコントローラ カタログの記事を参照してください。

于 2013-09-23T18:34:44.113 に答える