Swift 3 将变量传递给 PopupViewController
Swift 3 Pass variable to PopupViewController
我正在使用 accessoryButtonTappedForRowWith
:
来展示我的 viewController
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let popoverContent = storyboard.instantiateViewController(withIdentifier: "Test")
popoverContent.modalPresentationStyle = .popover
if let popover = popoverContent.popoverPresentationController {
let viewForSource = self.createCharacterView as UIView
popover.sourceView = viewForSource
// the position of the popover where it's showed
popover.sourceRect = viewForSource.bounds
// the size you want to display
popoverContent.preferredContentSize = CGSize(width: 200,height: 200)
popover.delegate = self
}
self.present(popoverContent, animated: true, completion: nil)
弹出窗口工作正常,只是我显示的 viewController 需要 tableViewCell 的标签。我能够获取变量,但我不确定如何将变量传递给弹出窗口,因为未调用 segue 我认为我无法使用 prepare(for segue: UIStoryboardSegue, sender: Any?)
.
太简单了:
popoverContent.variableName = passingVariable
您可能需要将 popOvercontent 转换为特定的 viewController
(popoverContent as? MyViewController).myVar = value
我正在使用 accessoryButtonTappedForRowWith
:
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let popoverContent = storyboard.instantiateViewController(withIdentifier: "Test")
popoverContent.modalPresentationStyle = .popover
if let popover = popoverContent.popoverPresentationController {
let viewForSource = self.createCharacterView as UIView
popover.sourceView = viewForSource
// the position of the popover where it's showed
popover.sourceRect = viewForSource.bounds
// the size you want to display
popoverContent.preferredContentSize = CGSize(width: 200,height: 200)
popover.delegate = self
}
self.present(popoverContent, animated: true, completion: nil)
弹出窗口工作正常,只是我显示的 viewController 需要 tableViewCell 的标签。我能够获取变量,但我不确定如何将变量传递给弹出窗口,因为未调用 segue 我认为我无法使用 prepare(for segue: UIStoryboardSegue, sender: Any?)
.
太简单了:
popoverContent.variableName = passingVariable
您可能需要将 popOvercontent 转换为特定的 viewController
(popoverContent as? MyViewController).myVar = value