添加到选项卡栏控制器时,列样式 UISplitViewController 无法正常工作
Posted
技术标签:
【中文标题】添加到选项卡栏控制器时,列样式 UISplitViewController 无法正常工作【英文标题】:Column style UISplitViewController not working properly when added to a Tab bar controller 【发布时间】:2020-11-20 02:08:10 【问题描述】:我尝试将具有三列样式的拆分视图控制器添加到 UITabBarController,它以折叠状态显示。当我使用旧样式的拆分视图控制器时,相同的代码可以正常工作。如何让 3 列拆分视图控制器正确显示在标签栏控制器上?
class TabBarController: UITabBarController
override func viewDidLoad()
super.viewDidLoad()
// This works fine ????♂️
let splitViewController = SplitViewController()
splitViewController.viewControllers = [ UINavigationController(rootViewController: PrimaryViewController()) , UINavigationController(rootViewController: SecondaryViewController())]
// let splitViewController = SplitViewController(style: .tripleColumn)
// splitViewController.setViewController(UINavigationController(rootViewController: PrimaryViewController()), for: .primary)
// splitViewController.setViewController(UINavigationController(rootViewController: SecondViewController()), for: .secondary)
// splitViewController.setViewController(UINavigationController(rootViewController: SupplementaryViewController()), for: .supplementary)
// splitViewController.show(.primary)
// splitViewController.show(.secondary)
// splitViewController.show(.supplementary)
splitViewController.title = "First"
let secondViewController = SecondViewController()
secondViewController.title = "Second"
setViewControllers([
splitViewController,
secondViewController
], animated: false)
这里是项目的链接:https://github.com/anirudhbandi96/SplitViewTest
这就是新的三列拆分视图控制器的外观
这是旧的 2 列拆分视图控制器的外观
【问题讨论】:
你有没有想过这个问题? 【参考方案1】:我什至无法让第 2 列在 UITabBarController 中工作。但是,如果我只是创建一个新的 UIViewController,将 UISplitViewController 作为 childViewController 添加,那么一切正常。
class MyViewController: UIViewController
let split = UISplitViewController(style: .doubleColumn)
override func viewDidLoad()
super.viewDidLoad()
addChild(split)
view.addSubview(split.view)
// add in your constraints to fix to same size here
// -- here --
vc.didMove(toParent: self)
【讨论】:
以上是关于添加到选项卡栏控制器时,列样式 UISplitViewController 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
连接到选项卡栏控制器时,TableView 不会切换到详细视图