5

私はこれを検索するのに幸運ではなかったので、ここに行きます;)

私はサブビューとして別のものをプッシュUIViewControllerする習慣を持っています。UINavigationBarUIViewController

サブビューの[戻る]ボタンをクリックする場合を除いて、すべて正常に機能します。プレビュー(最初の)ビューは正しく表示されますが、アニメーション化されていません。のアニメーションUINavigationBarは正しく、ビューのみがすぐに切り替わります。

- (void)viewWillAppear:(BOOL)animated最初の関数はforでUIViewController呼び出されます。これは、iOS4ではなくiOS5でテストした場合にのみ発生します。NOanimated

誰かがこれを修正する方法を知っていますか?

ご協力いただきありがとうございます!ハネス

更新1

すべてのカスタムコードを削除し、プレーンを使用しただけですがUINavigationBar(追加の設定はありません)、iOS 5ではまだ機能しません。これは、最初のViewControllerで2番目のViewControllerをプッシュするために使用するコードです。

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

すでに述べたように、2番目のビューのナビゲーションバーにある[戻る]ボタンをクリックすると、最初のビューはアニメーションなしですぐに表示されます。

どんな助けでもいただければ幸いです!ありがとう!

更新2

問題に近づいているように感じますが、それでも解決策はありません。

UINavigationControllerを呼び出すだけのカスタムを追加しました[super popViewControllerAnimated:animated]。このgetは正しく呼び出されます(animatedはYESです)がviewWillAppear、最初のgetはUIViewControlleranimatedの値としてNOを取得します...

4

3 に答える 3

6

私は今日、標準とを除いて、UIViewControllerがNOになるという同様の問題を抱えていました。viewWillAppearUINavigationBarUINavigationController

本来あるべきではない場所に手動で電話をかけたことが原因であることが判明しましたviewWillAppear:YESこの項目superは、どこかで間違ったメソッドを呼び出したことが原因である可能性があることを示しています(たとえば、の内部では[super viewWillAppear:animated]なく)。[super viewDidAppear:animated]viewDidAppear

カスタムの使用に関しては、UINavigationBar今日、あなたのケースに役立つ可能性のあるこのリンクに出くわしました:http ://sloshire1.posterous.com/simple-fix-for-viewwillappear-in-ios5

于 2012-01-20T20:46:00.770 に答える
0

Appleは、iOS 5でカスタムナビゲーションバーを作成する公式の方法を実装しました。残念ながら、iOS 4での非公式の方法のほとんども破りました。iOS5では、drawRectが呼び出されなくなりました。それを行うには2つの方法が必要です。1つは新しい呼び出しを使用するiOS5以降用で、もう1つは古い呼び出しを使用するiOS4以前用です。詳細については、iOS5のカスタムナビゲーションバーのドキュメントを確認してください。

于 2012-01-17T20:34:02.683 に答える
0

すべてのカスタムコードを削除して、ネイティブナビゲーションバーを使用しようとしましたか?動作は同じままですか?このようにして、カスタムバーがトランジションを台無しにするかどうかを確認できます。

于 2012-01-20T09:12:05.117 に答える