Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Popover tableview控制器未显示数据_Swift_Uitableview_Popover - Fatal编程技术网

Swift Popover tableview控制器未显示数据

Swift Popover tableview控制器未显示数据,swift,uitableview,popover,Swift,Uitableview,Popover,我的Popover控制器弹出一个空白的TableView,我不知道为什么。我尝试过改变单元格和视图的颜色,但当我点击弹出框时,这似乎都没有显示出来 以下是启动popover的代码: @IBAction func popOverButton(_ sender: UIButton) { let controller = TableViewController() controller.modalPresentationStyle = .popover // configur

我的Popover控制器弹出一个空白的TableView,我不知道为什么。我尝试过改变单元格和视图的颜色,但当我点击弹出框时,这似乎都没有显示出来

以下是启动popover的代码:

@IBAction func popOverButton(_ sender: UIButton)
{

    let controller = TableViewController()
    controller.modalPresentationStyle = .popover
    // configure the Popover presentation controller
    let popController: UIPopoverPresentationController? = controller.popoverPresentationController
    popController?.permittedArrowDirections = [.down]
    popController?.delegate = self
    popController?.sourceView = sender
    popController?.sourceRect = sender.bounds
    popController?.backgroundColor = .white
    self.parent?.present(controller, animated: true, completion: { })

}

    func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle
{
    return UIModalPresentationStyle.none
}

这是我为Tableview控制器编写的代码,在制作常规ViewController之前,我曾尝试过另一种方法,将Tableview放在上面,但结果相同。 导入UIKit

class TableViewController: UITableViewController {
var categories = PTTableView().titles
//PTTableview.titles is a populated array from another viewcontroller     and it is not empty
@IBOutlet var tableiViewOne: UITableView!

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

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

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{


    let cell = tableiViewOne.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! PopOverTableViewCell

    cell.cellLabelOne.text = categories[indexPath.row]

    return cell
}

}
是的,故事板上的tableviewcontroller设置为tableviewcontroller

更新: 我已将tableviewcontroller上的节数更改为1,现在我的应用程序正在崩溃,并显示致命错误:在展开可选值时意外发现零 (lldb) 突出显示

let cell = tableiViewOne.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! PopOverTableViewCell

我在故事板上有相同的单元名称,它被设置为与您为
numberOfSections
方法返回的
0
相同的类。这将生成一个空表


您应该至少有一个部分来显示数据。因此,您需要将其更改为
返回1

是否设置了数据源和委托

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.dataSource = self
    tableView.delegate = self
}

我这样做了,现在它说,在展开突出显示my let cell的可选值时意外地发现了nil=您是否将故事板中的tableViewCell设置为
PopOverTableViewCell
?在故事板中的reuseIdentifier中指定“myCell”cell@SamR. 检查
TableIveOne
与情节提要的IBOutlet连接