iPad UISplitViewController:扩展master而不是全屏细节?

时间:2015-02-11 19:18:33

标签: ios ipad uiviewcontroller uisplitviewcontroller master-detail

我正在开发一个iOS8 iPad应用程序,它使用UISplitViewController作为它的根视图控制器,类似于主细节模板。

我的应用程序要求我始终在纵向和横向中并排显示主视图和详细视图。我有这个设置,一切都运行良好,有一个例外。我需要能够全屏扩展主视图,从而隐藏详细视图。我很清楚相反的情况很容易实现(将细节扩展到全屏隐藏大师)。我基本上是在寻找相同的功能,但反之亦然。

这是为详细信息视图提供扩展/收缩功能的代码:

self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
self.navigationItem.leftItemsSupplementBackButton = YES;

是否可以在MASTER视图控制器上实现此效果?我需要这个效果,因为我的MASTER视图控制器是我的主要视图控制器,其中大量信息以表格格式显示,而我的详细视图控制器不需要太多屏幕空间。

我试图简单地设置preferredPrimaryColumnWidthFraction = 1来简单地覆盖细节视图,但这似乎更像是一个黑客,并且不提供扩展细节视图的默认动画。

不,我不能将我的桌子设置为细节(并出现在右侧)。

不,我不能将我的详细信息视图设置为主设备(并显示在左侧)。

不,我不想使用开源库来实现这一目标(如果可能的话)

1 个答案:

答案 0 :(得分:0)

这似乎不是默认过渡。

您可以尝试从"Collapsing and Expanding the Split View Interface"

的建议开始
  

转换到折叠界面时,拆分视图控制器与其委托一起管理转换。在折叠转换结束时,拆分视图控制器通常仅显示其主视图控制器中的内容。您可以通过在拆分视图控制器委托中实现primaryViewControllerForCollapsingSplitViewController:方法来更改此行为。您可以使用该方法指定辅助视图控制器或完全不同的视图控制器 - 可能更适合在水平紧凑的环境中显示。如果要对视图控制器和视图层次结构执行任何其他调整,还可以在委托中实现splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:方法。

这样,您可以折叠,但完全显示主视图控制器,而不是挂钩到primaryViewControllerForCollapsingSplitViewController:

这可能看起来很奇怪,因此您最好使用自定义大小调整动画以模态方式呈现主视图控制器。在最坏的情况下,您可以在现有的UIWindow之上添加另一个fs.readFile("./tasks/example.json",'utf8', function(err, jsonObjectForHIT){ // parse json file and assign to variable obj var obj = JSON.parse(jsonObjectForHIT) // read in template file fs.readFile("./tasks/StageOneQuestionTemplate1.html", function(err, addedXML){ // replace value from template with value from json object and assign to variable finalXML var finalXML = String(addedXML).replace(/VerbGoesHere/g,obj.verb); var finalXML = String(addedXML).replace(/RoleOne/g,obj.roles[0]); var finalXML = String(addedXML).replace(/RoleTwo/g,obj.roles[1]); var finalXML = String(addedXML).replace("RoleThree",obj.roles[2]) } 以分离主视图控制器。在最好的情况下,您摆弄现有的视图控制器层次结构并从那里分离主控。我可以想象这会在改变方向时造成很多麻烦。