如何在UIViewcontroller的popover中填充UItableview中的数据?

时间:2015-03-14 20:58:04

标签: ios uitableview swift uipopovercontroller

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

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。

popupVC

这是popboardVC在Storyboard上的样子,没有与mainVC的直接segue连接。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

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

let popoverVC = storyboard?.instantiateViewControllerWithIdentifier("idPopupFileTable") as UIViewController
popoverVC.modalPresentationStyle = .Popover
popoverVC.preferredContentSize = CGSizeMake(300, 200)
popoverVC.dataArray = liseOfFiles