他の質問を検索しましたが、まだ回答がありません...アドバイスが必要です。コードを別のプラットフォームからiOSに移植しています。C ++にMVCバックボーンがあります:モデルのCData。コントローラーのCController。
- CControllerはCDataのインスタンスを作成します
- CControllerはCViewのインスタンスを作成します
- CControllerはCNotifications抽象から継承します
- CControllerは「this」をCViewのコンストラクターに渡します
- CViewは、コンストラクターにCNotifications *を想定しています。これにより、CViewは、CController自体を実際に認識しなくても、いくつかの重要なイベントでコントローラーをコールバックできます。
Windowsでは、CViewはGDIにアクセスするだけで、必要なものをすべて描画します。
今、私はこれらすべてをiOSに移植しています。CDataとCControllerは完全にプラットフォームに依存しないため、すべて明確です。iOS上でCViewを再実装するつもりでした。そして、これが問題です。
最初は、iOSのViewController(xibの所有者)がCViewから継承し、すべてのCControllerのニーズを実装することを望んでいました。しかし、Obj-Cには多重継承がなく、ViewControllerはすでにUIViewControllerから継承していることに気付きました。
したがって、ViewController(xibの所有者)へのポインターを持つようにCViewを実装する必要があるようです。
そして問題は、ViewControllerへのポインタをCViewにうまく渡す方法ですか?
ApplicationDelegateは、CDataとCViewを作成するCControllerを作成するように計画しました。CControllerがViewControllerへのポインターを受け取り、このポインターをさらにCViewに渡すことは望ましくありません-CControllerの移植性を維持したい...
いろいろなことが頭に浮かびますが、広く受け入れられるアプローチをここに取り入れたいと思っていました。
前もって感謝します