こんにちは、私はDTNavigationControllerDataSource
(メソッドを除いて)として定義されていると呼ばれるプロトコルを持っています
protocol DTNavigationControllerDataSource: NSObjectProtocol
次に、私自身のカスタムUINavigationController
サブクラスに、次のようにこのプロトコルのインスタンス変数があります。
var dataSource: DTNavigationControllerDataSource?
基本的に、オブジェクトがいつdataSourceになるかを知る必要があります。つまり、dataSource
プロパティが設定されます。したがって、最初に設定されたときにdataSourceを呼び出して、いくつかの状態を設定できます。KVOの使用を考えましたがNSObjectProtocol
、そのための方法は定義されていません。これが可能かどうか、またはKVOを使用して内部のdataSourceプロパティがいつDTNavigationController
設定されているかを知る以外の方法があるかどうかはわかりません。私も試してみたdidSet
とwillSet
私はそれがプリミティブのためにのみ利用可能であると考えるようXcodeは、私にエラーを投げました。
このdidSet
アプローチは実際には正常に機能するはずであり、遊び場の次のコード(Xcode 7 GM)には問題はありませんでした。
class DTNavigationController : UINavigationController {
var dataSource: DTNavigationControllerDataSource? {
didSet {
print("new data source: \(dataSource)")
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加