将数据从导航控制器中呈现的视图传递回自定义视图 (XIB)

破坏者

我使用自定义 XIB 文件作为视图控制器的弹出窗口。XIB 文件包含两个按钮 =“发送”和“添加附加字段”。选择添加其他字段的按钮会显示另一个嵌入在导航控制器中的视图控制器。当用户登陆该控制器屏幕并选择他们的额外选项时,该数据应传递回 XIB 的var extraOptions = [String]()字段。从那里,用户应该能够通过选择“发送”来上传他们的帖子。

我遇到的问题是数据没有从嵌入在导航控制器中的视图控制器传回 XIB

这甚至可能吗?我已经尝试了我能想到的所有解决方案:协议/委托方法,var extraOptions在显示的控制器中设置XIB 文件中字段,然后将其关闭并返回到 XIB,这是我的最新尝试:

名为CreatePostModal 的自定义 XIB (视图控制器是一个弹出窗口)

@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)
}

额外选项视图控制器

@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)
}

如您所见,在打印方法中,它打印变量并显示数据在那里,但是当返回 XIB 文件并且用户保存并上传数据时,该字段显示为空。

如何从嵌入在导航控制器中的视图将数据传回 XIB?

地理

您可以通过以下三种方式使用其中之一:

  • NS通知中心
  • 代表
  • 关闭

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何添加Xib视图以查看控制器Swift 3

XIB中的导航栏项目,显示了StoryBoard选项卡栏根视图控制器Segue

如何在不使用导航控制器或导航栏的情况下从Xib返回main.storyboard中的视图控制器?

使用Xib的自定义标注视图

如何继承具有.xib文件的自定义视图

从XIb加载视图崩溃

从XIB快速加载视图

.xib的表标题视图

如何使用xib视图控制器推送情节提要视图控制器

无法将新的xib添加到视图控制器

如何将Xib关联到相同的视图控制器?

如何将.xib界面设置为自定义标注视图?

如何在 xib 视图控制器中添加图像 (swift3)

将iPhone xib转换为iPad xib?

如何在情节提要场景中嵌入自定义视图Xib?

用Xib创建的自定义视图在Interface Builder中不起作用

Xamarin iOS 堆栈视图中来自xib 的自定尺寸自定义视图

如何:在iOS中使用StackView View从XIB自定义自定义视图的大小

如何将自定义UICollectinViewCell注册到在xib文件的自定义视图中内置的UICollectionView中

使用XIB将数据从UIViewController传递到自定义UIView

在xib视图文件之间导航

XIB中的全局约束

由于子视图无效,因此无法使用Xib文件创建自定义视图

UIStackView 作为 XIB 的根视图

AutoLayout动态.xib视图高度

使用XIB实例化视图

实现协议以将数据从推送的视图控制器传递回视图控制器

将数据从自定义UI单元传递到视图控制器

Swift自定义Xib委托