我已经静态函数实例化,看起来像斯威夫特 - 指的是当前类类型的静态/类功能
class AController: UIViewController {
static func instantiate() -> AController {
let storyboard = UIStoryboard(name: "AController", bundle: nil)
let controller = s.instantiateInitialViewController() as? AController
return controller!
}
}
class BController: UIViewController {
static func instantiate() -> BController {
let storyboard = UIStoryboard(name: "BController", bundle: nil)
let controller = storyboard.instantiateInitialViewController() as? BController
return controller!
}
}
视图控制器我,所以我想一群人,使这吸尘器:
class MYViewController: UIViewController {
class func instantiate() -> self.type {
let storyboard = UIStoryboard(name: "\(self.type)", bundle: nil)
let controller = storyboard.instantiateInitialViewController() as? self.type
return controller!
}
}
class AController: MYViewController {
}
class BController: MYViewController {
}
但我不知道的动态参考对象的类型在静态/类功能,以及如何有此指的是从子类的子类调用时。这很容易做到一旦对象已经被实例化type(of: object)
见http://stackoverflow.com/questions/33200035/return-instancetype-in-swift的可能解决方案(但如果给定的答案有效,那么这将是一个更简单的解决方案)。 –