0

私はこれでうまくいくいくつかのコードを持っていました:

[self.navigationController pushViewController:subView animated:YES];

新しいビューをUINavigationControllerスタックにプッシュするには、ビューのコンテンツをリロードしてからタイトルを更新する機能を実装したので、次のような関数があります。

- (void)loadEntries:(NSString *)entriesToLoad
{
   //Loading code
   self.title = [entriesToLoad lastPathComponent];
}

このコードはタイトルを適切に設定しますがUINavigationController、メインのルート ビューが失われる原因となります。そのコードをコメントアウトすると、まったく問題なく動作します。現在、新しいビューをビュー スタックにプッシュしようとしているときにタイトルを設定するだけで、正常に動作しています。ビューが子ビューの子ビューである場合の奇妙さを増すために ( root view-> child view-> child view)、最初の子ビューをルートとして扱うようです。タイトルを変更すると、ナビゲーション スタックにこのような影響が及ぶ理由がわかりません。

4

3 に答える 3

0

タイトルの設定に関連しているようには聞こえませんが、おそらく他の何かをしているのでしょう。ただし、navigationItemプロパティにタイトルを設定して、他の部分 ( のタイトルなど) に影響を与えないようにすることを好みますtabBarItem

[self.navigationItem setTitle:[entriesToLoad lastPathComponent];
于 2013-07-17T16:33:09.503 に答える
0

ここで混乱が生じるはずです。子ビュー(追加後にサブビューになります)または子ビューコントローラーについて話していますか?なぜなら:

[self.navigationController pushViewController:subView animated:YES];

UIViewController'sサブクラスではなく、サブクラスを期待していUIView'sます。


サブビューで遊びたい場合は、次のように簡単にできます。

[self.view addSubView:mySubView]; 

そして、あなたのタイトルを変更しますUINavigationController

于 2013-07-17T16:21:57.337 に答える