2017-10-19 18 views
-1

如果任何人对分割视图控制器有丰富的经验并且能够帮助我,那将是一个很好的帮助。 我有一个项目,开始于登录屏幕,后面跟着一个调用API来获取结果的搜索屏幕。搜索屏幕从API调用中获得结果后,我想将它们传递给splitviewcontroller进行显示。基本上来说,对于具有table view的splitviewcontroller的master。那么如何做到这一点?我没有看到如何使用performsegue,当从splitviewcontroller到主控的segue没有任何标识符? 那么是否有可能使用splitviewcontroller作为第三或第四个屏幕? 有没有其他方法可以做到这一点?iOS Swift 4 - 如何将数据传递给splitviewcontrollers主

谢谢。

回答

0

每个UIViewController有一个属性称为splitViewController。这是一个optional的值,如果您使用的是UISplitViewController,则该值可能是nilsplitViewController属性将允许您访问分割视图控制器嵌入的视图控制器。

UISplitViewController s有两个主要组件,主视图控制器和详细视图控制器。在iPad上,主人是位于屏幕左侧并占用最少空间的人,并且将占用大面积的右侧。在iPhone上,两者将在导航堆栈中彼此重叠,并且两者将占据整个屏幕。

这是如何从主站访问细节:

if let splitVC = self.splitViewController, let detailVC = splitVC.viewControllers[1] { 
    detailVC.doSomething() 
} 

这是如何从细节访问主:

if let splitVC = self.splitViewController, let masterVC = splitVC.viewControllers[0] { 
    masterVC.doSomething() 
} 

请记住,您可以使用UINavigationControllerUITabBarController在你的故事板中,可以嵌入主或细节。在这种情况下,您可以做同样的事情,但将这些视图控制器作为UINavigationControllerUITabBarController,并在其中钻取以检索真正的主控和细节。

+0

感谢您的回复。我会玩这个属性,看看它是否允许我访问主传递一些数据,在我的情况下是API返回的对象数组。尝试几件事后我会更新回来。当我搜索了一些陈旧的帖子时,证明这是不可能的。分割视图控制器(主控和细节)必须是初始/根视图控制器。我不明白为什么苹果限制这样的事情,如果设计明智的话,按照这个顺序设计故事板/屏幕是有意义的。 – user8637139

+0

那么你能做到吗? –

+0

我将在本周末尝试。会让你知道。谢谢。 – user8637139

相关问题