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