0

私の質問はUISplitView、iOS SDK5.1 のベース アプリケーションに関するものです。

  • アプリは分割ビュー ベースです。
  • ルートのマスタービューと詳細ビューが使用されている間、アプリを記述するときにすべてが正常に機能しています。
  • 後で、セグエ タイプ「replace master split」を使用して、マスター ビューと詳細ビューをセグエします。

ここで問題が始まります:

  • 上記のすべてがポートレート モードで発生した場合、マスター ビューを表示するバー ボタンは表示されません。
  • ランドスケープ モードに切り替えて元に戻すと、問題が解決します。

masterVC は自分自身を のようsplitview.delegateに設定しますが-(void)viewDidLoad、これは遅すぎると思われるため、デリゲート メソッドを時間内に呼び出すことができません。

そのため、デリゲートを ... に設定しようとしました-(void)prepareForSegueが、動作は変わりませんでした。

4

1 に答える 1

0

アプリ デリゲートの didFinishLaunchingWithOptions メソッドで UISplitViewController デリゲートを設定します。

if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

    UISplitViewController *splitViewController = (UISplitViewController*)self.window.rootViewController;
 UITableViewController *yourViewController = (UITableViewController*)[splitViewController.viewControllers objectAtIndex:0];
splitViewController.delegate = yourViewController;

 }

yourViewController が UISplitViewControllerDelegate プロトコルに準拠していることを確認してください。

編集: また、MasterViewController がナビゲーション コントローラーに埋め込まれている場合は、最初に UINavigationController にアクセスしてから topViewController にアクセスする必要があります。

于 2012-07-14T20:26:49.020 に答える