objective-c – 从uisplitview更改主视图和详细视图

objective-c – 从uisplitview更改主视图和详细视图,第1张

概述在我的故事板上,我的项目以分割视图开始,自动分配我的自定义UITableViewController(嵌入在导航控制器中)作为详细视图控制器(由关系segue完成).如何从我的自定义UITableViewController访问拆分视图控件,以便我可以根据需要更改主视图控制器视图? UIViewController有一个属性splitViewController,它是对viewController 在我的故事板上,我的项目以分割视图开始,自动分配我的自定义UItableVIEwController(嵌入在导航控制器中)作为详细视图控制器(由关系segue完成).如何从我的自定义UItableVIEwController访问拆分视图控件,以便我可以根据需要更改主视图控制器视图?解决方法 UIVIEwController有一个属性splitVIEwController,它是对vIEwController嵌入的分割视图控制器的引用.由于您的表视图控制器嵌入在导航控制器中,导航控制器本身嵌入在拆分视图控制器中,因此您首先需要获取对导航控制器的引用,然后从中获取对拆分视图的引用.

所以在你的自定义tableVIEwController的代码中你可以这样做:

UISplitVIEwController *splitVC = [[self navigationController] splitVIEwController];

你可以从中获得对masterVIEwController的引用. splitVIEwController有一个属性vIEwControllers,它是两个元素的NSArray.索引为零的元素是主vIEwController.索引1处的元素是您的详细视图控制器.

UIVIEwController *masterVC = [[splitVC vIEwControllers] objectAtIndex:0];

请注意,如果您的master是自定义viewController子类(可能是它),那么当您将其从数组中拉出时,应该将其强制转换为它.

如果要完全使用新的vIEwController重新关联主视图控制器,可以通过使用新的主VC和现有的详细视图控制器创建新数组并将其分配给拆分视图控制器的vIEwControllers属性来实现:

UIVIEwController *detailVC = [[splitVC vIEwControllers] objectAtIndex:1];NSArray *newVIEwControllerArray = [NSArray arrayWithObjects:newMasterVC,detailVC,nil];splitVC.vIEwControllers = newVIEwControllerArray;
总结

以上是内存溢出为你收集整理的objective-c – 从uisplitview更改主视图和详细视图全部内容,希望文章能够帮你解决objective-c – 从uisplitview更改主视图和详细视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1014796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存