Popover tableview控制器未显示Data Swift

时间:2017-03-18 03:18:23

标签: swift uitableview popover

我的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
}

This Code Shows This

这是我的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,现在我的应用程序崩溃说致命错误:在展开Optional值时意外发现nil (LLDB) 突出显示

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

我在故事板上有相同的单元名称,并且它设置为同一个类

2 个答案:

答案 0 :(得分:0)

您正在为0方法返回numberOfSections。这将生成一个空表。

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

答案 1 :(得分:0)

您是否设置了dataSource和委托?

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