swift SPLITVIEW-example1.swift
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift SPLITVIEW-example1.swift相关的知识,希望对你有一定的参考价值。
//
// SplitViewSupport.swift
// MasterDetailDemo
//
// Created by Ivo Vacek on 28/01/15.
// Copyright (c) 2015 Ivo Vacek. All rights reserved.
//
import UIKit
// MARK: - iPad ios7support
extension UISplitViewController: UISplitViewControllerDelegate {
struct ios7Support {
static var modeButtonItem: UIBarButtonItem?
}
var backBarButtonItem: UIBarButtonItem? {
get {
if responds(to: #selector(getter: UISplitViewController.displayModeButtonItem)) == true {
let button: UIBarButtonItem = displayModeButtonItem
return button
} else {
return ios7Support.modeButtonItem
}
}
set {
ios7Support.modeButtonItem = newValue
}
}
// simple trick, without swizzling :-)
func displayModeButtonItem(_: Bool = true)->UIBarButtonItem? {
return backBarButtonItem
}
public func splitViewController(_ svc: UISplitViewController, willHide aViewController: UIViewController, with barButtonItem: UIBarButtonItem, for pc: UIPopoverController) {
if (!svc.responds(to: #selector(getter: UISplitViewController.displayModeButtonItem))) {
if let detailView = svc.viewControllers[svc.viewControllers.count-1] as? UINavigationController {
svc.backBarButtonItem = barButtonItem
detailView.topViewController?.navigationItem.leftBarButtonItem = barButtonItem
}
}
}
public func splitViewController(_ svc: UISplitViewController, willShow aViewController: UIViewController, invalidating barButtonItem: UIBarButtonItem) {
if (!svc.responds(to: #selector(getter: UISplitViewController.displayModeButtonItem))) {
if let detailView = svc.viewControllers[svc.viewControllers.count-1] as? UINavigationController {
svc.backBarButtonItem = nil
detailView.topViewController?.navigationItem.leftBarButtonItem = nil
}
}
}
// MARK: - user defined imlementation of UISplitViewControllerDelegate
public func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
if let navController = primaryViewController as? UINavigationController {
if let controller = navController.topViewController as? SelectColorTableViewController {
return controller.collapseDetailViewController
}
}
return true
}
}
以上是关于swift SPLITVIEW-example1.swift的主要内容,如果未能解决你的问题,请参考以下文章
将版本更改为 Swift 1.2 而不是 Swift 2.1
swift 指定的初始值设定,1.swift
swift AuthDelegateViewController-1.swift
swift Swift - CloudKit订阅 - 1
swift async_v1.swift
swift Swift 1.核心语法