所以我添加一个UISplitViewController
到一个嵌入了UITabBarController
.
The UISplitViewController
has a UINavigationController
作为与其自己的根控制器的主从关系。
大师UINavigationController
rootController
有一个到 Detail 的详细信息UINavigationController
.
看这里:
一切都很简单吧?现在在 TableViewController 中我执行以下操作;
class TableViewController: TableViewController, UISplitViewControllerDelegate {
var collapseDetailViewController: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
splitViewController?.delegate = self
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
collapseDetailViewController = false
}
// MARK: - UISplitViewControllerDelegate
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return false
}
我还有一个 UISplitViewController 扩展并执行以下操作;
extension UISplitViewController: UISplitViewControllerDelegate {
public override func viewDidLoad() {
self.extendedLayoutIncludesOpaqueBars = true
}
}
完成这一切后,我遇到了以下问题;
-
当点击时tableviewcell
要切换到详细视图,当在 iPad 上横向而不是右侧时,详细视图会在主左侧窗格中打开。我也不知道如何在 iPad 或 iPhone 上以纵向模式显示主视图作为第一个视图。我不确定这两个问题可能相关,也可能不相关。
在移动设备上,选项卡栏上方有一个底部栏,我不知道如何删除它。我在 iPad 上遇到了同样的问题,直到我在UISplitViewController
扩展viewDidLoad
但这并没有影响手机。看这里,
PS:我不确定这个问题是否太长,我觉得最好把所有内容放在上下文中。我也做了很多研究,但我无法在 swift 中找到任何使用 UITabBarController 的资源。
我确实遵循了以下教程http://nshipster.com/uisplitviewcontroller/ http://nshipster.com/uisplitviewcontroller/