从 Swift 中的 PopOver UITableViewCell 选择更改 UITextField 中的值

Change value in UITextField from PopOver UITableViewCell selection in Swift

我有一个 iOS Xcode7 Swift2 项目正在处理。我有一个 AddViewController,它有一个 UITextField,旁边是一个 UIButton。当它被按下时,它会带来一个新的 PopOverViewController.

启动 PopOver 的代码是:

    let bounds = UIScreen.mainScreen().bounds
    let center = bounds.width/2

    var popoverContent = (self.storyboard?.instantiateViewControllerWithIdentifier("PopOverViewController"))! as UIViewController
    var nav = UINavigationController(rootViewController: popoverContent)
    nav.modalPresentationStyle = UIModalPresentationStyle.Popover
    var popover = nav.popoverPresentationController
    popoverContent.preferredContentSize = CGSizeMake(200,115)
    popover!.delegate = self
    popover!.sourceView = self.view
    popover!.sourceRect = CGRectMake(center,140,0,0)

    self.presentViewController(nav, animated: true, completion: nil)

然后我看到PopOverViewController如图所示:

新的PopOverViewController里面有一个UITableView。我想要它,所以当用户在 UITableView 中选择一个文件夹时,它会将名称从本例中的 'General' 更改为原始 AddViewController 中选定的 'Misc'。我该怎么做?

我试过 PopOverViewController didSelectRowAtIndexPath:

let selected = selectableFolders[indexPath.row]
selectedFolder = selected

let priorViewController: AddViewController()
priorViewController.folderName.text = selectedFolder

但这不起作用。有人可以帮帮我吗?谢谢!

let selected = selectableFolders[indexPath.row]
selectedFolder = selected



   [ let priorViewController: AddViewController() ] 

    priorViewController.folderName.text = selectedFolder

我认为这段代码确实有效,但它的错误在于获取 priorViewController 。 您不应该在封闭的行中创建另一个实例 (let priorViewController:AddViewController() 而是从应用程序委托获取视图 这就是我在我的一个项目中的做法 让 messagesVC = (((UIApplication.sharedApplication().keyWindow?.rootViewController)as? LoginViewController)?.presentedViewController)?.childViewControllers[1] as? Messages

   messagesVC?.inputToolbar.contentView.textView.text = selected joke!

这些都在我的 didselectrow 中。加上用于获取类似于您的单元格的代码。 你的视图层次结构可能不同,你能告诉我那个层次结构还是先试试上面提到的方法。 注意:首先尝试更新视图,因为您在同一页面上可能不会重绘,但我认为我给出的第一个代码会解决问题。