我有一个自定义navigationBar:
class Name_UINavigationBar: UINavigationBar {
// code
}
我想以编程方式将其设置为导航控制器。所以我试过了:
var navController : UINavigationController = UINavigationController(
navigationBarClass: object_getClass(Name_UINavigationBar),
toolbarClass: nil)
// code
但它崩溃说:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'MyProject.Name_UINavigationBar is not a subclass of UINavigationBar'
答案 0 :(得分:5)
试试这个。
let navController = UINavigationController(navigationBarClass: YourNavigationBar.self, toolbarClass: nil)
我遇到了同样的错误,并且能够让它再次运行。
答案 1 :(得分:0)
在Swift中,没有受支持的方法来获取对象的Class。你问题几乎肯定与object_getClass
方法有关,我认为从Beta 5开始不再支持这种方法。
我认为像这样的API要么会更新,重写,要么很快就会被弃用。现在你需要在Objective-C中完成它。