2013-03-08 103 views
2

我在我的iPad应用程序中使用UISplitViewController,并且我不太喜欢弹出窗口视图的滑动方式,并覆盖了屏幕的三分之一,并且在纵向模式下时仍处于此位置。UISplitViewController - 调整细节视图的大小

当弹出窗口滑入视图时,我正在调整“细节”视图的大小,并且此工作正常,但顶部的导航栏保持全宽(并且位于弹出窗口下方)。 我基本上希望它在横向模式下看起来像。

这是我用它来调整视图代码:

UIViewController *masterView = [svc.viewControllers objectAtIndex:0]; 
UINavigationController *detailNavView = [svc.viewControllers objectAtIndex:1]; 
UIViewController *detailView = [detailNavView.viewControllers objectAtIndex:0]; 

detailView.view.frame = CGRectMake(masterView.view.frame.size.width, 0, detailView.view.frame.size.width - masterView.view.frame.size.width, detailView.view.frame.size.height); 

我已经尝试设置detailNavView.view.frame但没有任何反应。

如何调整包括导航栏在内的整体细节视图?

回答

4

嗯,我认为UISplitViewController是不是真的很灵活。这只是苹果公司决定的事情:纵向分割,纵向分割。详细视图占据了该控制器的整个视图(即主视图),因此您必须将其定义为另一种控制器的主视图的子视图,以便像这样操纵其导航栏。

自定义纵向视图的唯一解决方案是实际取消Apple版本的分割视图控制器并自行推出。

也许最实用的解决方案是在选定项目并在详细视图中显示之后关闭弹出窗口

+1

谢谢。我决定采用'选择新项目后自动关闭弹出窗口'的方法。意味着我可以玩整个屏幕。谢谢 – Darren 2013-03-08 14:36:14

+0

这是一个好方法。我会把它放到为别人着想的答案中。 – Mundi 2013-03-08 17:45:41

相关问题