MGSplitViewController更改详细视图控制器

时间:2012-09-01 16:14:09

标签: objective-c ios cocoa-touch uisplitviewcontroller

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

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

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

谢谢!

3 个答案:

答案 0 :(得分:2)

你做得对。来自UISplitViewController参考:

  

拆分视图控制器没有自己的重要界面。它的   工作是管理其两个子视图控制器的表示   和不同方向之间的过渡。

也:

  

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

答案 1 :(得分:1)

使用MGSplitViewController时,设置detailViewController而不重置所有内容(效率非常低)的方法是设置detailViewController,然后调用layoutSubviews

splitViewController.detailViewController = myVC;
[splitViewController layoutSubviews];

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

希望这有帮助!

答案 2 :(得分:-3)

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

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

多数民众赞成。 希望有所帮助。

相关问题