gpt4 book ai didi

ios - UISplitViewController 在 iPhone 设备上显示详细 View 而不是主视图

转载 作者:行者123 更新时间:2023-11-30 11:49:08 25 4
gpt4 key购买 nike

我已经实现了 UISplitViewController 并且一切正常。我想要做的是在 iPhone 设备上只显示detailView而不是masterView作为第一个 View Controller 。我意识到我可以在 masters viewDidLoad 方法中创建从主视图到详细 View 的 Segue,但这对我来说有点 hacky。也许这是实现我想要的唯一方法?

我已经查看了 UISplitViewControllerDelegate 的文档,特别是这个函数,但是我不觉得我明白它实际上在做什么。我还将 UISplitViewController 设置为委托(delegate)并设置 allVisible 并尝试了 SplitViewController 子类的 viewDidLoad 中的所有其他选项

self.delegate = self
self.preferredDisplayMode = .allVisible

func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
return true
}

如果有帮助, Storyboard中的detailViewController层次结构是SplitViewController > UINavigationController > myDetailViewController

最佳答案


您需要做的是使用 splitviewcontroller 委托(delegate)函数
func splitViewController(_ splitViewController:UISplitViewController,collapseSecondary secondaryViewController:UIViewController,到primaryViewController:UIViewController) -> Bool
在那里,您可以将第二个 Controller 插入第一个导航 Controller 并返回 true。返回 true 意味着您将处理转换。例如

func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController:UIViewController, onto primaryViewController:UIViewController) -> Bool { 
if let detailViewController = secondaryViewController as? YourSecondViewController, let primaryNV = primaryViewController as? UINavigationController {
primaryNV.pushViewController(detailViewController, animated: false)
returns true // I handle it myself.
}
return false // let the iOS handles it.
}

如果您需要更多说明,请告诉我。我会尽力解释得更好。干杯!.

关于ios - UISplitViewController 在 iPhone 设备上显示详细 View 而不是主视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48520237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com