ios – 通过Swift中的Storyboard Segue传递自定义初始化参数

ios – 通过Swift中的Storyboard Segue传递自定义初始化参数,第1张

概述我对自定义初始化程序的概念有些陌生,所以我很难理解我想做什么是可能的. 我正在使用源代码来创建消息传递应用程序.所有的代码都是在没有使用故事板的情况下编写的,我现在想要实现它们. 在源代码中实现的init是这样的: init(chat: Chat) { self.chat = chat super.init(nibName: nil, bundle: nil) title 我对自定义初始化程序的概念有些陌生,所以我很难理解我想做什么是可能的.

我正在使用源代码来创建消息传递应用程序.所有的代码都是在没有使用故事板的情况下编写的,我现在想要实现它们.

在源代码中实现的init是这样的:

init(chat: Chat) {    self.chat = chat    super.init(nibname: nil,bundle: nil)    Title = chat.user.name}required init(coder aDecoder: NSCoder) {    fatalError("init(coder:) has not been implemented")}

在dIDSelectRowAtIndexPath方法中,原始代码以这种方式传递自定义init参数:

let chat = chats[indexPath.row]    let chatVIEwController = MessagesVIEwController(chat: chat)    navigationController?.pushVIEwController(chatVIEwController,animated: true)

我尝试做的只是创建一个故事板UIVIEwController,将类设置为原始代码,即将storyboard VIEwController设置为:MessagesVIEwController,然后执行segue.像这样:

if segue.IDentifIEr == "ToMessages" {        var messagesVIEwController: MessagesVIEwController = segue.destinationVIEwController as MessagesVIEwController        let chat = chats[indexPath.row]        messagesVIEwController.chat = chat    }

然后执行SegueWithIDentifIEr(“ToMessages”,发件人:self)

当我这样做时,我得到了这个致命错误:致命错误:init(编码器:)尚未实现:

从我对原始源代码的研究和理解,原因是因为我没有初始化聊天参数.我意识到我可能没有走上正确的轨道,如果是这样的话,我们将不胜感激.

如果我对正在发生的事情是正确的,那么我的具体问题是如何在prepareForSegue方法中实现参数,例如:

var destinationVC = segue.destinationVIEwController as MessagesVIEwController(chat: chat)
解决方法 更改init代码如下

init(chat: Chat) {    self.chat = chat    super.init()    Title = chat.user.name}required init(coder aDecoder: NSCoder) {    super.init(coder: aDecoder)}

每当通过Storyboard创建UIVIEwController时,都会调用init(编码器:).在您的情况下,调用覆盖,您在其中编写了fatalError()以使其失败,这是您在执行时获得的错误.

总结

以上是内存溢出为你收集整理的ios – 通过Swift中的Storyboard Segue传递自定义初始化参数全部内容,希望文章能够帮你解决ios – 通过Swift中的Storyboard Segue传递自定义初始化参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1026016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存