如何呈现一个嵌入在 tabBar 控制器中的作为 mapView 委托的视图控制器?

问题描述

我有一个标签栏控制器,其中嵌入了三个 UIViewController,我们称它们为 ViewControllerA、ViewControllerB 和 ViewControllerC。我将我的 ViewControllerB 设置为 MKMapViewDelegate 子类,然后调用它的 viewDidLoad:

mapView.delegate = self

从我的 ViewControllerA,我以编程方式呈现了第四个视图控制器,称为 ViewControllerD

    let vcD = ViewControlledD()
    vcD.modalPresentationStyle = .fullScreen
    self.present(vcD,animated: true,completion: nil)

我在那里做我需要做的事情,然后我想将一些数据发送到嵌入在我的标签栏中的 ViewControllerB 并以编程方式呈现它。我该怎么做? 我一直在尝试从我的 ViewControlledD 调用

    let vcB = ViewControlledB()
    vcB.modalPresentationStyle = .fullScreen
    vcB.myString = stringToPass
    self.present(vcB,completion: nil)

但是当我尝试它时,它因错误而崩溃:

致命错误:在隐式解包可选值时意外发现 nil

指的是 mapView.delegate 所在的那一行。我怎样才能做到这一点?由于这是应用程序中经常发生的转换,是否有任何解决方案可以在不实例化我的 ViewControllerB 的许多不同实例但始终引用同一个实例的情况下实现这一目标?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)