该错误表明这个类是一个UIViewController
. a 的指定初始化程序UIViewController
需要nibName
& bundle
。因此,当您在super.init
没有参数的情况下调用时,它会引发错误,因为init
for UIViewController
(在这种情况下是超类)的方法需要这些参数。
基本上,您必须替换super.init()
为
super.init(nibName: String?, bundle: Bundle?)
更好的方法:
覆盖init
方法
var destination : CLLocationCoordinate2D
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.destination.latitude = Double("")!
self.destination.longitude = Double("")!
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
正确的做法:
根本不要使用init
。相反,使用UIViewController
的生命周期方法,如viewDidLoad
, viewWillAppear
, &viewDidAppear