【问题标题】:Change value in UITextField from PopOver UITableViewCell selection in Swift从 Swift 中的 PopOver UITableViewCell 选择中更改 UITextField 中的值
【发布时间】:2016-04-20 16:38:25
【问题描述】:

我正在处理一个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”。我该怎么做?

我在PopOverViewControllerdidSelectRowAtIndexPath试过了:

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

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

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

【问题讨论】:

  • 在这种情况下尝试使用闭包或委托......
  • 我是半新的编程,你能提供一个简单的例子吗?

标签: ios uitableview swift2 popover


【解决方案1】:
let selected = selectableFolders[indexPath.row]
selectedFolder = selected



   [ let priorViewController: AddViewController() ] 

    priorViewController.folderName.text = selectedFolder

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

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

这一切都在我的 didselectrow 中。加上获取与您的单元格相似的代码。 您的视图层次结构可能不同,您能告诉我该层次结构还是先尝试上述方式。 注意:首先尝试在同一页面上更新视图,也许它没有被重绘,但我认为我给出的第一个代码将解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多