为什么我的表格视图中的自定义单元格没有显示? UITableViewController外部的静态表视图

问题描述 投票:0回答:1

我制作了具有不同菜单类型和部分的侧面菜单。因此,我创建了一个UIViewController以在UITableViewController之外显示我的静态表视图。我基于LukeSideWalkerthis答案创建了UIView。我还将UIViewController分配给了MenuViewController

enum MenuType: Int, CaseIterable {

    case pläne, dokumentationen, begehungen, dokumente
    case sync, einstellungen

    var section: Int {
        switch self {
        case .pläne, .dokumentationen, .begehungen, .dokumente : return 0
        case .sync, .einstellungen: return 1
        }
    }

    var row: Int? {
        switch self.section {
        case 0: return self.rawValue
        case 1: return self.rawValue - MenuType.allCases.filter{ $0.section < self.section }.count
        default: return nil
        }
    }
}

class MenuViewController: UIViewController, UITableViewDelegate {

    @IBOutlet weak var appversion: UILabel!
    @IBOutlet weak var currentuser: UILabel!
    @IBOutlet weak var orga: UILabel!

    var didTapMenuType: ((MenuType) -> Void)?

    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        setupNavbarImage()
        setupAppInfo()

    }

    //selects the correct section with the respective rows
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        guard let menuType = MenuType.allCases.first(where: { $0.section == indexPath.section && $0.row == indexPath.row }) else {return}
        dismiss(animated: true) { [weak self] in
            self?.didTapMenuType?(menuType)
        }
    }

    private func setupAppInfo() {
        appversion.text = "Version: \(GlobalState.appVersion!)"
        currentuser.text = "User: \(GlobalState.user)"
        orga.text = "Orga: \(GlobalState.orga)"
    }

    private func setupNavbarImage() {
        imageView.image = UIImage(named: "Logo")
    }

}

此代码片段在使用UITableViewController时较早起作用,但是我需要使用ViewController !!我的ContainerView中的部分正确显示,但未显示单元格。

enter image description here


更新


这是我的故事板

enter image description here

ios swift uitableview uicontainerview
1个回答
0
投票

tableView还没有。您需要添加

let tableView: UITableView = UITableView()

MenuViewController也应符合UITableViewDataSource。所以:

class MenuViewController: UIViewController, UITableViewDelegate, UITableViewDataSource

添加必要的协议后,还应该添加:

tableView.dataSource = self
tableView.delegate = self

in viewDidLoad

© www.soinside.com 2019 - 2024. All rights reserved.