Core Graphicsとジェスチャレコグナイザー(OpenGLやタッチイベントではない)を使用するiphone/ipadで最初のアプリを実行しています。アプリ、ビュー、コントローラーはIBを使用してセットアップされました。これは、ViewController内の単なるビューです。CGコンテキストに描画するためのCG呼び出しを追加しました。ジェスチャはビューに追加されますが、ビューコントローラで処理されます。ビューコントローラは、アクセサを使用して、ビューに描画されるものを決定する変数を変更します。計算(つまりモデル)はビューに埋め込まれています。このアプリは非常にうまく機能しますが、メールで送信したり、描画したものを保存したりするなどの機能を追加したいと思います。(私は他のグラフィックスコンテキストが必要になることを知っています)。
従来の知識では、MVCパラダイムを使用する必要があると言われています。これは、モデルをビューからそれ自体のオブジェクトに分解することを意味します。そこで、コードをリファクタリングしました。モデルのNSObjectを手動で追加しました。これには、データと必要なメソッドが適切に含まれています。コンパイルエラーや警告はありません。
ここで、ビューのdrawRectがトリガーされたときに、コントローラーを介してモデルから更新された画像を取得したいと思います。画像が返されると予想される重要な場所で、NULLが返されます。オブジェクト参照が正しくない可能性がありますが、混乱して霧を切り抜けることができず、真空で作業しているので、あなたの助けを求めています。読んでくれてありがとう。
まとめと質問
View Controllerには、モデルに渡すことができる現在のパラメーターが常にあります。モデルは、これらのパラメーターを指定してビットマップ画像を計算できます。私はそれだけのダウンがあるとかなり確信しています。
私の質問は(さまざまな言い方をすれば):
モデルからビューに画像を取得するための最良の方法は何ですか(コントローラーを介して:^)ビューは、要求を開始するためにビューコントローラーにメッセージをどのように送信する必要がありますか?
モデルはどのようにして画像をコントローラーに返すことができますか?CGContextRefを、推奨するチェーンに戻すだけだと思います。
私について:私はOOP、Objective-C、Xcode、およびIBを初めて使用します。私はスタンフォード大学の講義のほとんどを数回見、ゴールドスタインのダミーの本を研究し、アップルのドキュメントを精査しました。初心者がこれらの情報源から適切なレベルの回答を収集することは困難です。もっと「経験」が必要です。私はとても環境に配慮しているので、ビューのインターフェイス定義に「myViewController * viewController」を含める以外に、ビューコントローラーを参照する方法すらわかりません。私はここStackoverflowで同様の質問に対する答えをグーグルで読んでいます。私は何も適切なものを見つけられなかったと信じることができません。私は、実用的な原則が私のガイドとして役立つことを望んでいます。
お知らせ下さい。
これは、十分に回答されなかった、view-instance-drawrectのモデルデータへの参照に似ています。