如果有人对拆分视图控制器有很好的经验,可以帮助我,这将是一个很大的帮助。
我有一个项目,首先是一个登录屏幕,然后是一个搜索屏幕,它调用一个API来获取结果。在搜索屏幕从API调用获取结果后,我想将这些结果传递给splitviewcontroller进行显示。基本上是splitviewcontroller的master,它有table视图。那么怎么做呢?我看不出在splitviewcontroller到master的segue没有任何标识符时,如何使用performsgue?
那么,是否可以使用splitviewcontroller作为第三个或第四个屏幕?
有没有别的方法可以达到这个目的?
谢谢。
最佳答案
每个UIViewController
都有一个名为splitViewController
的属性。这是一个optional
值,它可能是nil
也可能不是UISplitViewController
基于您是否使用splitViewController
。UISplitViewController
属性允许您访问拆分视图控制器嵌入的视图控制器。
对于UINavigationController
s,有两个主要组件,主视图和局部视图控制器。在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()
}
请记住,您可能在故事板中使用
UITabBarController
或UINavigationController
,母版或细节可能嵌入其中。在这种情况下,您可以执行相同的操作,但将这些视图控制器转换为UITabBarController
或并在其中向下钻取以检索真正的主视图和详细信息。关于ios - iOS Swift 4-如何将数据传递给splitviewcontrollers master,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46821680/