繁体   English   中英

无法在Swift中的其他ViewController中为ViewController创建实例

[英]Not able to create instance for viewcontroller in other viewcontrollers in Swift

我有一个需要初始化的ViewController?(coder aDecoder:NSCoder),我想在其他类中创建实例。 这是我的代码

 class ViewControllerB: UIViewController { @IBOutlet weak var tableview: UITableView! required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) }} 

我想在ViewControllerA中为ViewControllerB创建实例。

您可以通过几种方式对其进行修复。

选项1

let viewController = ViewControllerB(nibName: nil, bundle: nil)

选项2

如下更改您的ViewControllerB。

class ViewControllerB: UIViewController {
    @IBOutlet weak var tableview: UITableView!

    convenience init () {
        self.init(nibName: nil, bundle: nil)
    }
} 

要么

class ViewControllerB: UIViewController {
    @IBOutlet weak var tableview: UITableView!

    required init(coder aDecoder: NSCoder) {
        fatalError("This class does not support NSCoding")
    }
    override init (frame : CGRect) {
        super.init(frame : frame)
    }
    convenience override init () {
        self.init(frame:CGRectZero)
    }
}

现在你可以打电话

let viewController = ViewControllerB()

像这样

let viewController = ViewControllerB()

这将提供ViewControllerB的实例,然后执行您想要的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM