我认为这是一个简单的问题。我看过其他解决方案,但它们错过了我的关键一步。
IOS: fill a popover with a tableview
如何将值数组插入弹出窗口中的空表中?
数据已正确加载并返回到我的变量 listOfFiles
中,弹出窗口成功启动并显示一个空表。
现在我缺少如何获取对 UITableview 的引用的概念?在我的弹出窗口中用 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)
}
我尝试了很多方法,但似乎无法从 popoverVC
到表中获取 IBOutlet
。我可以设置引用导出,如下所示,但似乎无法创建 IBOutlet。
这是 popoverVC 在 Storyboard 上的样子,与 mainVC 没有直接的 segue 连接。
最佳答案
您的 popoverVC
的表应该有一个 IBOutlet
,并且应该实现数据源和委托(delegate)方法。该 Controller 还应该有一个数组属性(在我下面的代码中称为 dataArray
),您可以在创建 popoverVC
时将数组传递给它。
let popoverVC = storyboard?.instantiateViewControllerWithIdentifier("idPopupFileTable") as UIViewController
popoverVC.modalPresentationStyle = .Popover
popoverVC.preferredContentSize = CGSizeMake(300, 200)
popoverVC.dataArray = liseOfFiles
关于ios - 如何从 UIViewcontroller 的弹出窗口中的 UItableview 中填充数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29054118/