ios – 如何在Swift中使用UISplitViewController

前端之家收集整理的这篇文章主要介绍了ios – 如何在Swift中使用UISplitViewController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我将一个UISplitViewController添加到一个嵌入了UITabBarController的项目中.

UISplitViewController有一个UINavigationController作为Master&与自己的根控制器的详细关系.

Master UINavigationController rootController具有Detail UINavigationController的细节segue.

看这里:

一切都很简单吧?现在在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上使用Portrait时将Master View显示为第一个视图.这两个问题可能有关,也可能没有关系我不确定.


>在移动设备上,标签栏上方有一个底栏,我无法弄清楚如何删除.我在iPad上遇到了同样的问题,直到我在UISplitViewController扩展viewDidLoad中添加代码,但这并没有影响移动设备.看这里,

PS:我不确定问题是否太长,我认为最好将所有内容放在上下文中.此外,我一直在做大量的研究,但我在swift中找不到任何使用UITabBarController的资源.

我确实遵循了以下教程http://nshipster.com/uisplitviewcontroller/

解决方法

你是如此接近,只需做以下事情.

保持拆分视图布局与细节segues并为以下方法返回true并删除其余代码以使用变量collapseDetailViewController.

func splitViewController(splitViewController: UISplitViewController,ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true    
}

将以下内容放入Master View控制器中

self.splitViewController!.delegate = self;

self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible

self.extendedLayoutIncludesOpaqueBars = true

将self.extendedLayoutIncludesOpaqueBars = true添加到您的详细视图控制器,如上一个答案所述.这应该删除视图控制器上出现的栏.

此外,如果您想要一些额外的功能,如果您希望您的详细视图在iPad上使用全屏,请添加以下内容.

navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
navigationItem.leftItemsSupplementBackButton = true
原文链接:https://www.f2er.com/iOS/333422.html

猜你在找的iOS相关文章