我使用自定义XIB文件作为视图控制器的弹出窗口。XIB文件包含两个按钮= "send"并"添加其他字段"。选择添加额外字段的按钮会显示嵌入在导航控制器中的另一个视图控制器。当用户登陆控制器屏幕,并选择他们的额外选项时,该数据应该传递回XIB的var extraOptions = [String]()
字段。从那里,用户应该能够通过选择"send"上传他们的帖子。
我遇到的问题是数据没有从嵌入在导航控制器中的视图控制器传递回XIB.
这可能吗?我已经尝试了我能想到的每一个解决方案:协议/委托方法,设置XIB文件中的var extraOptions
字段,从呈现的控制器中删除它并返回到XIB,这是我的最新尝试:
自定义XIB命名CreatePostModal(视图控制器是一个弹出窗口)
@objc func addExtraOptions(_ sender: UITapGestureRecognizer? = nil) {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc: UINavigationController = storyboard.instantiateViewController(withIdentifier: "ExtraOptionsNavigationController") as! UINavigationController
vc.delegate = self
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)
}
ExtraOptionsViewController
@IBAction func donePressed(_ sender: Any) {
if let navController = presentingViewController as? UINavigationController {
let presenter = navController.topViewController as! CreatePostModal
presenter.extraOptions = self.extraOptionsSelected
print("These are the options selected ==> (present.extraOptions)") //this prints the options and shows that they're there, but the array is empty whenever a user tries to upload the data
}
dismiss(animated: true, completion: nil)
}
如您所见,在print方法中,它打印变量并显示数据在那里,但是当返回XIB文件时,用户保存&上传数据时,字段显示为空。
如何将数据从嵌入在导航控制器中的视图传递回XIB ?
有三种用法:
- NSNotificationCenter
- 关闭