7

我有一个自定义导航栏:

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'
4

2 回答 2

7

试试这个。

let navController = UINavigationController(navigationBarClass: YourNavigationBar.self, toolbarClass: nil)

我遇到了同样的错误,并且能够让它再次像那样工作。

于 2014-10-31T07:26:41.880 回答
0

在 Swift 中,不支持获取对象类的方法。您的问题几乎肯定与object_getClass我认为从 Beta 5 开始不再受支持的方法有关。

我想像这样的 API 很快就会被更新、重写或被弃用。现在你需要在 Objective-C 中完成它。

于 2014-09-09T10:54:22.100 回答