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、ベータ 5 の時点でサポートされなくなったと私が信じている方法に関係しています。

このような API は、すぐに更新されるか、書き直されるか、単に非推奨になると思います。今のところ、Objective-C で行う必要があります。

于 2014-09-09T10:54:22.100 に答える