【问题标题】:Set custom navigation bar class in UINavigationController在 UINavigationController 中设置自定义导航栏类
【发布时间】:2014-09-09 10:29:57
【问题描述】:

我有一个自定义导航栏:

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'

【问题讨论】:

    标签: ios7 swift ios8 xcode6-beta7


    【解决方案1】:

    试试这个。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我在 xcode 6 beta 7 上,它没有说明 object_getClass。但你说的似乎是一个很好的解释。
      猜你喜欢
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多