如何从 UIViewcontroller 的弹出窗口中的 UItableview 中填充数据?

How to fill data in UItableview in popover from UIViewcontroller?

我认为这是一个简单的问题。我看过其他解决方案,但他们错过了我的关键步骤。

IOS: fill a popover with a tableview

如何在弹出窗口中将一组值推入空 table?

数据已正确加载并在我的变量 listOfFiles 中返回,弹出窗口成功启动并显示空 table。

现在我错过了如何获取对 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 到 table 获得 IBOutlet。我可以如下所示设置引用网点,但似乎无法创建 IBOutlet。

这是故事板上 popoverVC 的样子,与 mainVC 没有直接的 segue 连接。

您的 popoverVC 应该有一个 IBOutlet 到它的 table,并且应该实现数据源和委托方法。该控制器还应该有一个数组 属性(在我下面的代码中称为 dataArray),您可以在创建 popoverVC.

时将数组传递给该数组
let popoverVC = storyboard?.instantiateViewControllerWithIdentifier("idPopupFileTable") as UIViewController
popoverVC.modalPresentationStyle = .Popover
popoverVC.preferredContentSize = CGSizeMake(300, 200)
popoverVC.dataArray = liseOfFiles