3

MGSplitViewController を使用して、詳細ビュー コントローラを変更するにはどうすればよいですか? 宣言されたプロパティがあります:

@property (nonatomic, retain) IBOutlet UIViewController *detailViewController; // convenience.

splitVC.detailViewController = myVC;ても効果はありません。代わりに、私がしなければなりませんsplitVC.viewControllers = @[masterVC, myVC];。それは機能しますが、これは正しい方法ですか?

ありがとう!

4

3 に答える 3

2

あなたはそれを正しくやっています。UISplitViewControllerリファレンスから:

Split View Controller には、独自の重要なインターフェイスはありません。その仕事は、2 つの子ビュー コントローラーの表示と、異なる方向間の遷移を管理することです。

また:

2 つのビュー コントローラーを分割ビュー コントローラーに割り当てる必要があります。通常、これらのビュー コントローラーはストーリーボードで構成します。分割ビュー コントローラーをプログラムで作成する場合は、viewControllers プロパティを使用してそれらを割り当てます

于 2012-09-01T16:23:17.343 に答える
1

MGSplitViewControllerを使用する場合、すべてをリセットせずにを設定する方法detailViewController(これは非常に非効率的です)は、を設定してdetailViewControllerから呼び出すことです。layoutSubviews

splitViewController.detailViewController = myVC;
[splitViewController layoutSubviews];

これにより、マスタービューコントローラーのビューを削除してからリセットするという無駄なオーバーヘッドを回避できます。

お役に立てれば!

于 2012-11-15T20:02:49.893 に答える
-3

いいえ、それは正しい方法ではありません。代わりに、nav2 UINavigationController *nav1 = [UINavigationController alloc]initwithrootviewcontroller:masterviewcontroller]; のようにナビゲーション コントローラーにマスター ビュー コントローラーと詳細ビュー コントローラーを割り当てます。

splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:nav1,nav2, nil];
splitViewController.delegate = detailViewController;

それでおしまい。それが役立つことを願っています。

于 2012-09-01T16:27:34.787 に答える