3

使用 MGSplitViewController,如何更改详细视图控制器?声明了一个属性:

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

splitVC.detailViewController = myVC;没有效果。相反,我必须这样做splitVC.viewControllers = @[masterVC, myVC];。它有效,但这是正确的方法吗?

谢谢!

4

3 回答 3

2

你做得对。来自UISplitViewController参考:

拆分视图控制器没有自己的重要接口。它的工作是管理其两个子视图控制器的呈现以及不同方向之间的转换。

还:

您必须将两个视图控制器分配给一个拆分视图控制器。通常你在故事板中配置这些视图控制器;如果您以编程方式创建拆分视图控制器,则使用 viewControllers 属性分配它们

于 2012-09-01T16:23:17.343 回答
1

使用MGSplitViewController时,一种在detailViewController不重置所有内容的情况下设置的方法(这似乎非常低效)是设置detailViewController然后调用layoutSubviews

splitViewController.detailViewController = myVC;
[splitViewController layoutSubviews];

这避免了删除主视图控制器的视图然后重置它的浪费开销。

希望这可以帮助!

于 2012-11-15T20:02:49.893 回答
-3

不,这不是正确的方法,而是在导航控制器中分配你的主视图控制器和细节视图控制器,就像 UINavigationController *nav1 = [UINavigationController alloc]initwithrootviewcontroller:masterviewcontroller]; 同样的 nav2 一样。然后写

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

就是这样。希望有帮助。

于 2012-09-01T16:27:34.787 回答