我认为这是一个简单的问题。我已经看过其他解决方案,但他们错过了我的关键一步。
IOS: fill a popover with a tableview
如何在弹出窗口中将值数组推送到空表中?
数据已正确加载并在我的变量listOfFiles
中返回,并且popover成功启动并显示空表。
现在我错过了如何获取对UITableview的引用的概念?在我的popover中用plist中的数据填充它?
我是否需要将UITableViewDataSource, UITableViewDelegate
添加到我的UIViewController?
//MARK:buttons to save and load defaults
@IBAction func loadState(sender: UIButton) {
if(dbg){println("loaded State")}
//get list of plist files
var listOfFiles: [String] = getSavedState()
if(dbg){
for index in listOfFiles {
println("file name is \(index)")
}
}
//how to shove the data into the table??
//MARK:idPopupFileTable
let popoverVC = storyboard?.instantiateViewControllerWithIdentifier("idPopupFileTable") as UIViewController
popoverVC.modalPresentationStyle = .Popover
popoverVC.preferredContentSize = CGSizeMake(300, 200)
if let popoverController = popoverVC.popoverPresentationController {
popoverController.sourceView = sender
popoverController.sourceRect = sender.bounds
popoverController.permittedArrowDirections = .Any
popoverController.delegate = self
}
presentViewController(popoverVC, animated: true, completion: nil)
}
我尝试了很多方法但似乎无法从IBOutlet
到桌面获得popoverVC
。我可以设置引用插座,如下所示,但似乎无法创建IBOutlet。
这是popboardVC在Storyboard上的样子,没有与mainVC的直接segue连接。
答案 0 :(得分:1)
您的popoverVC
应该在其表中有IBOutlet
,并且应该实现数据源和委托方法。该控制器还应该有一个数组属性(在下面的代码中称为dataArray
),您可以在创建popoverVC
时将数组传递给它。
let popoverVC = storyboard?.instantiateViewControllerWithIdentifier("idPopupFileTable") as UIViewController
popoverVC.modalPresentationStyle = .Popover
popoverVC.preferredContentSize = CGSizeMake(300, 200)
popoverVC.dataArray = liseOfFiles