在iPad屏幕上,它不显示拆分视图

时间:2017-05-10 10:14:47

标签: ios ipad swift3 uisplitview

在这个分割视图中,如果我拖动它显示在iPad屏幕上没有显示,如果我选择了一个索引它没有显示在标签上

class ListTableViewController: UITableViewController {
    let names = ["One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return names.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "CellIdentifier", for: indexPath)

        cell.isSelected = true
        cell.textLabel?.text = names[indexPath.row]

        return cell
    }

    // MARK:- Storyboard segue

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (segue.identifier == "ShowDetailIdentifier") {
            var detail: DetailsViewController
            if let navigationController = segue.destination as? UINavigationController {
                detail = navigationController.topViewController as! DetailsViewController
            } else {
                detail = segue.destination as! DetailsViewController
            }

            if let path = tableView.indexPathForSelectedRow {
                detail.selectedIndex = path.row + 1
            }
        }
    }

主视图控制器中的代码

  @IBOutlet weak var numberLabel: UILabel!
        var selectedIndex:Int = 1

        override func viewDidLoad() {
            super.viewDidLoad()

            numberLabel?.text = "\(selectedIndex)"
            print(selectedIndex)

            if splitViewController?.responds(to: #selector(getter: UISplitViewController.displayModeButtonItem)) == true {
                navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem
                navigationItem.leftItemsSupplementBackButton = true
            }

详细信息视图控制器中的代码

class SplitViewController: UISplitViewController,UISplitViewControllerDelegate {


    override func viewDidLoad() {
        super.viewDidLoad()

        splitViewController?.preferredDisplayMode = .primaryOverlay
        splitViewController?.delegate = self
                     // Do any additional setup after loading the view.
    }
    func splitViewController(_ splitViewController: UISplitViewController,
                             collapseSecondary secondaryViewController: UIViewController,
                             onto primaryViewController: UIViewController) -> Bool {
        return true
    }

拆分视图控制器的代码

2 个答案:

答案 0 :(得分:0)

你错过了这个on your tableView.reloadData()or viewDidLoad import pandas as pd import psycopg2 as pg import pandas.io.sql as psql from psycopg2 import sql sql_query = sql.SQL("SELECT * FROM {} limit %d offset %d" % (table_name, chunk_size, offset)).format(sql.Identifier(table_name)) df = psql.read_sql_query(sql_query, connection) viewDidAppear

答案 1 :(得分:0)

我无法看到你在哪里初始化你需要传递TableViewController和detailViewController的splitviewcontroller。 你需要在继承UISplitViewController的类的viewDidLoad中传递它

self.viewControllers = [masterNav, detail]

并始终显示splitviewcontroller,你需要这个

self.displayMode = .allVisible