【问题标题】:in iPad screen it is not displaying split view在 iPad 屏幕中它不显示拆分视图
【发布时间】:2017-05-11 19:12:58
【问题描述】:

在这个拆分视图中,如果我拖动它正在显示,并且如果我选择一个索引,它不会显示在标签上,则它不会显示在 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
    }

拆分视图控制器的代码

【问题讨论】:

    标签: ios ipad swift3 uisplitview


    【解决方案1】:

    你错过了这个atableView.reloadData()on yourviewDidLoadorviewDidAppear

    【讨论】:

    • 表视图正在显示,但问题是在 iPad 布局中,我选择的值没有传递给细节视图控制器
    • 您是否检查过您是否在 viewDidLoad 之前设置了标签的文本属性?
    • 您之前是否完成过任何一个拆分视图控制器项目?
    • 我不明白你为什么在 prepareForSegue 结束时使用if let path = tableView.indexPathForSelectedRow。你有从你的 tableViewCell 连接到你的destinationVC的segue吗?
    • 是发送选定的索引以显示在详细信息视图控制器上
    【解决方案2】:

    我看不到你在哪里初始化你需要传递 TableViewController 和 detailViewController 的 splitviewcontroller。 需要在继承窗体UISplitViewController的类的viewDidLoad中传入

    self.viewControllers = [masterNav, detail]
    

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

    self.displayMode = .allVisible
    

    【讨论】:

    • 后来我更改并添加了现在的问题是,当我在 iPad 上运行应用程序时,它没有将值从 master 传递到 details,当我旋转到横向时,当我稍后旋转它时它不能完全工作工作正常并传递所有值
    • 当我在 iPad 屏幕上旋转两次时,它正在传递值
    • 我看不到您的 didSelectIndexPath 方法。
    • 在我的主视图控制器中查看 if let path = tableView.indexPathForSelectedRow { detail.selectedIndex = path.row + 1 }
    • 如果可能的话,你能把你的邮件ID发给我,这样你就可以检查并告诉我我的项目出了什么问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多