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