如果有人对拆分视图控制器有很好的经验,可以帮助我,这将是一个很大的帮助。
我有一个项目,首先是一个登录屏幕,然后是一个搜索屏幕,它调用一个API来获取结果。在搜索屏幕从API调用获取结果后,我想将这些结果传递给splitviewcontroller进行显示。基本上是splitviewcontroller的master,它有table视图。那么怎么做呢?我看不出在splitviewcontroller到master的segue没有任何标识符时,如何使用performsgue?
那么,是否可以使用splitviewcontroller作为第三个或第四个屏幕?
有没有别的方法可以达到这个目的?
谢谢。

最佳答案

每个UIViewController都有一个名为splitViewController的属性。这是一个optional值,它可能是nil也可能不是UISplitViewController基于您是否使用splitViewControllerUISplitViewController属性允许您访问拆分视图控制器嵌入的视图控制器。
对于UINavigationControllers,有两个主要组件,主视图和局部视图控制器。在iPad上,主屏幕位于屏幕的左侧,占用的空间最少,而细节则占据了屏幕右侧的大区域。在iPhone上,两者将在一个导航堆栈中位于彼此之上,并占据整个屏幕。
以下是如何从主控形状访问详细信息:

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

下面是如何从细节中访问master:
if let splitVC = self.splitViewController, let masterVC = splitVC.viewControllers[0] {
    masterVC.doSomething()
}

请记住,您可能在故事板中使用UITabBarControllerUINavigationController,母版或细节可能嵌入其中。在这种情况下,您可以执行相同的操作,但将这些视图控制器转换为UITabBarController或并在其中向下钻取以检索真正的主视图和详细信息。

关于ios - iOS Swift 4-如何将数据传递给splitviewcontrollers master,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46821680/

10-10 13:15