【发布时间】:2014-11-18 14:41:44
【问题描述】:
我正在尝试创建一个这样的类:
class MyClass<T:UIView>: UIViewController{
override init()
{
super.init(nibName: nil, bundle: nil);
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func loadView() {
self.view = T();
println("loadView")
}
override func viewDidLoad() {
super.viewDidLoad();
println("viewDidLoad")
}
}
当我想这样使用我的课程时:
self.navigationController?.pushViewController(MyClass<UIView>(), animated: true)
永远不会调用 viewDidLoad 和 loadView 方法!!!
你知道为什么以及是否有某种方法可以做我想做的事。
提前致谢。
【问题讨论】:
-
你的navigationController存在吗?你在屏幕上看到推送了吗?
-
@Bartek:是的,navigationController 存在,推送发生了。
-
@rintaro :谢谢,大概就是这样。最后 Swift 泛型有很多限制......非常失望
-
看起来这是在 Xcode 7 中修复的
标签: ios generics swift uiviewcontroller