为什么我的iOS应用程序中的变量或强制转换为空?

为什么我的iOS应用程序中的变量或强制转换为空?,ios,swift,xcode,Ios,Swift,Xcode,我正在用Xcode为IOS编写一个应用程序,我想向另一个尚未出现的ViewController发送一个变量。问题是,当我为未来的ViewController创建如下变量时: guard let EndConfiguration = self.storyboard?.instantiateViewController(withIdentifier: EndConfiguration) as? EndConfiguration else { fatalErro

我正在用Xcode为IOS编写一个应用程序,我想向另一个尚未出现的ViewController发送一个变量。问题是,当我为未来的ViewController创建如下变量时:

guard let EndConfiguration = self.storyboard?.instantiateViewController(withIdentifier: EndConfiguration) as? EndConfiguration else
        {
            fatalError("Impossible d'acceder correctement au cellules des alarmes")
        }
我正试图做到这一点:

EndConfiguration.ModeleOutlet.text = Alarme.shared.Alarmes[indexPath.row].Modele
我得到这个错误:

致命错误:隐式展开时意外发现nil 可选值

我理解选项,但如果在ModelOutlet后添加“?”将删除错误,但在我的另一个ViewController中文本保持不变。我确信我修改的值已满,不用担心

我在复制我的问题,因为有人关闭了它,因为已经有了解决方案,而根本没有解决方案


提前谢谢。

我假设
ModeleOutlet
的类型是一个
标签
或另一种可能包含文本变量的类型

try this 
guard let EndConfiguration = self.storyboard?.instantiateViewController(withIdentifier: EndConfiguration) as? EndConfiguration else
        {
            fatalError("Impossible d'acceder correctement au cellules des alarmes")
        }
_ = EndConfiguration.view
EndConfiguration.ModeleOutlet.text = Alarme.shared.Alarmes[indexPath.row].Modele
如果ModeleOutlet确实是通过故事板附加的标签,那么我建议您阅读ViewController生命周期。下面是一篇描述它的好文章:

现在,为了具体回答您的问题,您可能需要在视图控制器中创建一个单独的变量,然后在函数中设置文本变量,
viewDidLoad

class EndConfiguration: UIViewController {
    public var sharedText: String?

    @IBOutlet var ModeleOutlet: UILabel?

    func viewDidLoad() {
        super.viewDidLoad()

        self.ModeleOutlet?.text = sharedText
    }

}


我假设
ModeleOutlet
的类型是一个
标签
或另一种可能包含文本变量的类型

如果ModeleOutlet确实是通过故事板附加的标签,那么我建议您阅读ViewController生命周期。下面是一篇描述它的好文章:

现在,为了具体回答您的问题,您可能需要在视图控制器中创建一个单独的变量,然后在函数中设置文本变量,
viewDidLoad

class EndConfiguration: UIViewController {
    public var sharedText: String?

    @IBOutlet var ModeleOutlet: UILabel?

    func viewDidLoad() {
        super.viewDidLoad()

        self.ModeleOutlet?.text = sharedText
    }

}


谢谢你的回复,我读了你寄给我的东西,非常感谢你给我的启发。所以我在我的EndConfiguration中这样做了:。在我的“第一步”:。但还是不行,我是不是搞错了?感谢您的平静。@LouisRaverdy您可能需要将
@IBOutlet
连接到故事板本身。是的,在我的EndConfiguration中,已经有一个@IBOulet我的标签我需要添加另一个吗?@LouisRaverdy我看到
ModeleOutlet的
@IBOutlet
已创建。你能验证它是否连接到故事板上吗?检查后,它工作得很好:谢谢你的回复,我读了你发给我的东西,非常感谢你,它启发了我。所以我在我的EndConfiguration中这样做了:。在我的“第一步”:。但还是不行,我是不是搞错了?感谢您的平静。@LouisRaverdy您可能需要将
@IBOutlet
连接到故事板本身。是的,在我的EndConfiguration中,已经有一个@IBOulet我的标签我需要添加另一个吗?@LouisRaverdy我看到
ModeleOutlet的
@IBOutlet
已创建。您能验证它是否连接到故事板吗?检查后,它工作得非常好:感谢您的响应,事实上,添加命令行不会给我更多关于可选的错误。但不幸的是,我仍然无法修改我的变量或出口。如果我打印我得到的变量“EndConfiguration:”,是否正常?感谢您的回复,事实上,添加了命令行并没有给我更多关于可选选项的错误。但不幸的是,我仍然无法修改我的变量或出口。如果我打印我得到的变量“EndConfiguration:”,是否正常?谢谢