iOS Swift 4 - 如何将数据传递给 splitviewcontrollers master

标签 ios swift uisplitviewcontroller

如果有人对 Split View Controller 有丰富的经验并且可以帮助我,那将是一个很大的帮助。 我有一个以登录屏幕开头的项目,然后是调用 API 以获取结果的搜索屏幕。在搜索屏幕从 API 调用中获取结果后,我想将它们传递给 splitviewcontroller 进行显示。基本上是 splitviewcontroller 的主人,它有表格 View 。那么该怎么做呢?当从 splitviewcontroller 到 master 的 segue 没有任何标识符时,我不知道如何使用 performsegue? 那么是否可以将 splitviewcontroller 用作您的第三或第四屏幕? 有没有其他方法可以实现这一目标?

谢谢。

最佳答案

每个 UIViewController 都有一个名为 splitViewController 的属性。这是一个可选值,它可能是也可能不是nil,具体取决于您是否使用UISplitViewControllersplitViewController 属性将允许您访问 Split View Controller 嵌入的 View Controller 。

UISplitViewController 有两个主要组件,即主视图 Controller 和详细 View Controller 。在 iPad 上,ma​​ster 位于屏幕左侧,占用空间最少,detail 将占据屏幕右侧的较大区域.在 iPhone 上,两者将在导航堆栈中彼此叠加,并且都将占据整个屏幕。

这是从 master 访问细节的方法:

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

这是从详细信息访问母版的方法:

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

请记住,您可能在 Storyboard中使用 UINavigationControllerUITabBarController,其中可能嵌入了主要内容或详细信息。在这种情况下,您可以执行相同的操作,但将这些 View Controller 转换为 UINavigationControllerUITabBarController 并在它们中向下钻取以检索您真正的主人和细节。

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

相关文章:

ios - firstAppear 不起作用,ViewController 每次都会初始化

Swift - 以编程方式创建 View 时的 Lazy Var 与 Let(节省内存)

ios - SplitViewControllers 可以在 iPhone 上使用吗?

ios - iOS 13 中 UISplitViewController 的详细信息 Pane 中出现了新的 UINavigationBar

ios - APNS通知下发失败(错误码8)

ios - 将 JSON 中的 "sex = 0"转换为 BOOL

iOS Swift window.rootViewController 与 presentViewController

ios - UISplitViewController,如何始终使用 UISplitViewControllerDisplayModePrimaryOverlay

objective-c - 当一个 Action 已经在进行时,用一个按钮开始一个 Action

ios - 您如何创建 iOS 9 音乐应用程序中使用的模糊/色彩效果?