1

iOS 6.1.2 の iPad で UITabBarController を UISplitViewController (マスター ビュー コントローラー用の UITableViewController を持つ) と共に使用すると、異常な動作が発生します。複数のタブがあり、そのうちの少なくとも 1 つのタブに分割ビュー コントローラーが含まれており、分割ビュー コントローラーを含むタブを横向きモードで表示している場合、別のタブに切り替えて縦向きモードに移動し、次に を押します。分割ビュー コントローラーを含むタブで、マスター ビュー コントローラー (テーブル ビュー コントローラー) がテーブル ビューを詳細ビューの上に表示します。この動作は、アプリが初めて読み込まれたときにのみ発生しますが、一貫した動作です。

このシナリオは、iPad デバイスと Core Data を使用する分割ビュー アプリケーションであるプロジェクトを作成するだけで簡単に再現できます (Core Data を使用せずに試したことはありません)。プロジェクトが作成されたら、ストーリーボードを使用してタブ バー コントローラーを追加し、それを最初のビュー コントローラーにしてから、ビュー コントローラー シークをタブ バー コントローラーから分割ビュー コントローラーに追加します。その後、AppDelegate.m の application:didfinishLaunchingWithOptions の 1 行を変更するコードで 1 つの変更のみが必要です。

次のテンプレート コードを変更します。

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;

に:

UITabBarController *tbc = (UITabBarController *)self.window.rootViewController;
UISplitViewController *splitViewController = [tbc.viewControllers lastObject];

おそらく私はいくつかの iOS ルールを破っていて、すべきでないことをしようとしていますか? 私がやりたいことは、いくつかの異なる分割ビュー コントローラー間でタブ移動できるようにすることだけです。提案?

4

1 に答える 1

3

このGitを見てください。

https://github.com/nalyd88/DCToolkit/tree/master/DCToolkit/DCToolkit

私が理解していることから、問題は、分割ビューコントローラーが表示されていないときに向きを更新しないことに起因しています。

ここでは、メッセージを渡すサブクラス化されたタブ ビュー コントローラーと分割ビュー コントローラーが使用されます。


この解決策を提供してくれたhttp://objectiveseesharp.wordpress.com/の Dylan に感謝します。私はちょうどそれを見つけました。

于 2013-05-18T12:39:00.057 に答える