我正在构建一个应用程序,其中应用程序的一部分应该列出我们镇上的所有商店并显示它们的一些细节。这部分有效,但它依赖于拆分视图控制器,正如您在这些pictures中看到的那样。我还添加了一个问题视频。
我不知道如何使用拆分视图控制器,真的..所以我做的是以下内容:我将拆分视图控制器设置为初始视图控制器,并连接应首先打开的导航控制器详细视图控制器。表视图的第一个导航控制器设置为主视图控制器。
现在的问题是,当我启动应用程序时,我到达主页(这很好,请检查驱动器中的视频),但是在左上角,您可以看到有一个导航按钮表视图。有没有办法删除该按钮,并使我的主页导航控制器再次成为初始视图控制器?
我想我必须以不同方式链接拆分视图控制器,再次将第一个视图控制器设置为初始视图控制器,并将segue添加到拆分视图控制器,但我不知道该segue应该是什么样子或者我应该如何编程呢。现在有一个到表视图的第一个视图控制器的segue。
在我的主页视图控制器中,这是现在推送到我的表格视图的第一个视图控制器的代码:
func pushRegisterViewShoppen()
{
self.performSegueWithIdentifier("SegueShoppen", sender: self)
}
let shoppen = UIButton(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
shoppen.setTitle("Shoppen", forState: .Normal)
shoppen.setTitleColor(UIColor.whiteColor(), forState: .Normal)
shoppen.addTarget(self, action: #selector(ViewController.pushRegisterViewShoppen),
forControlEvents: .TouchUpInside)
let BergStraatFoto = UIImage.init(named: "Bergstraat")
shoppen.setBackgroundImage(BergStraatFoto!, forState: .Normal)
tempView.addSubview(shoppen)
这是tableViewController中的prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
if let indexPath = tableView.indexPathForSelectedRow {
let winkel: Winkel
if searchController.active && searchController.searchBar.text != "" {
winkel = filteredWinkels[indexPath.row]
} else {
winkel = winkels[indexPath.row]
}
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController
controller.detailWinkel = winkel
controller.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
controller.navigationItem.setHidesBackButton(false, animated: true)
}
}
}
有谁知道我怎么解决这个问题?提前谢谢!
答案 0 :(得分:0)
尝试使用此UISplitViewController的委托方法,显示详细视图控制器,因为iPhone的纵向视图中没有太多空间,因此您需要使用以下委托方法覆盖它。
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController:UIViewController, ontoPrimaryViewController primaryViewController:UIViewController) -> Bool {
//handle it efficiently to decide based on certain conditions.
return true
}
试试这个thread,详细说明问题。