相关疑难解决方法(0)

Swift中UIViewController的自定义初始化,故事板中的界面设置

我有为UIViewController的子类编写自定义init的问题,基本上我想通过viewController的init方法传递依赖,而不是直接设置属性 viewControllerB.property = value

所以我为我的viewController做了一个自定义初始化,并调用超级指定的init

init(meme: Meme?) {
        self.meme = meme
        super.init(nibName: nil, bundle: nil)
    }
Run Code Online (Sandbox Code Playgroud)

视图控制器界面位于故事板中,我还将自定义类的界面作为我的视图控制器.即使你没有在这个方法中做任何事情,Swift也需要调用这个init方法.否则编译器会抱怨......

required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
Run Code Online (Sandbox Code Playgroud)

问题是当我尝试调用我的自定义init时,MyViewController(meme: meme)它根本不在我的viewController中初始化属性...

我试图调试,我在我的viewController中找到,先init(coder aDecoder: NSCoder)调用,然后调用我的自定义init.但是这两个init方法返回不同的self内存地址.

我怀疑有毛病初始化为我的viewController,它总是会返回selfinit?(coder aDecoder: NSCoder),其中,有没有实现.

有谁知道如何正确地为您的viewController制作自定义初始化?注意:我的viewController接口是在storyboard中设置的

这是我的viewController代码:

class MemeDetailVC : UIViewController {

    var meme : Meme!

    @IBOutlet weak var editedImage: UIImageView!

    // TODO: incorrect init
    init(meme: Meme?) {
        self.meme = meme
        super.init(nibName: nil, bundle: nil)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: …
Run Code Online (Sandbox Code Playgroud)

initialization uiviewcontroller ios swift

69
推荐指数
6
解决办法
5万
查看次数

标签 统计

initialization ×1

ios ×1

swift ×1

uiviewcontroller ×1