3

ナビゲーションコントローラーを使用してストーリーボードアプリを作成するXCode4.5.1では、押されたビューコントローラーの[戻る]ボタンを設定するのに苦労しています。私はセグエを使用していますが、ビューコントローラーは期待どおりに表示されます。ただし、ナビゲーションバーと戻るボタンの名前を動的に変更して、これをViewWillAppearに配置したいと思います。

    self.title = @"Select Songs";
    [self.backButton setTitle:@"Add"];

ナビゲーションバーのタイトルを変更しますが、戻るボタンには、「追加」というテキストではなく、プッシュされたウィンドウの名前が表示されます。

シミュレートされたメトリックはすべて推測されます。また、Xcodeのビューの下にある黒いトレイにBarButtonItemを追加し、ビューコントローラーのbackButtonをbackButtonに接続しましたが、テキストが表示されません。

次のログメッセージを追加すると、興味深いものが得られます:(それでもタイトルバーは正しく更新されています)

-(void) viewDidAppear:(BOOL)animated {
    NSLog(@"%s %@", __FUNCTION__, self.navigationItem.backBarButtonItem);
    NSLog(@"%s %@", __FUNCTION__, self.navigationController.navigationItem.backBarButtonItem);
}

2012-10-14 15:18:41.835 xxxx[2690:907] -[ViewController viewDidAppear:] (null)
2012-10-14 15:18:41.838 xxxx[2690:907] -[ViewController viewDidAppear:] (null)
4

2 に答える 2

13

受け入れられた答えはハックです、これはそれを行う方法です...

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

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

于 2014-03-10T15:32:42.170 に答える
10

戻るボタンには前のビューのタイトルが表示され、タイトルが設定されていない場合は「戻る」と表示されます。

したがって、prepareForSegueメソッドでは、次のビューがプッシュされる前に、現在のビューのタイトルを変更できます。戻るボタンには、タイトルを設定したものがすべて表示されます。

于 2012-11-16T11:10:40.043 に答える