1

私はiPhone開発を初めて使いました。このトピックに関する多くの書籍があります。しかし、初心者のガイドのほとんどは、Interface Builderの使用に関心があり、既存のXCodeコードテンプレートや、コードでのMVC実装の理解に役立つ情報についての情報が不足しています。 ViewControllerを使わずに作業用のiOSプログラムを作成することが可能であることがわかりました。まあ、それはViewTransitionsと呼ばれるサンプルコードで作業した後の私のように思えます。mvcパターンはiOSのユーザーインターフェイスでどのように実装されていますか? (ビューベースのXCode temlpate)

なぜ、ボタンとのインターフェイスを持つプログラムでViewControllerの実装を避けることができるのでしょうか?答えが長すぎる場合は、このトピックを扱うチュートリアルやマニュアルの種類をお勧めしますか?

ありがとうございます。

答えて

-1

ViewTransitionsでは、あなたの唯一の「コントローラ」のようなApp Delegateがあります。 ViewTransitionsさえあります:

transition.delegate = self;  

IOSは、あなたが何が起こっているのかを「制御」していないという点で、いくつかのフレームワークとは少し異なります。デリゲートとしてコードを設定するデリゲートモデルを使用することがよくありますが、そのIOS(IOS)は制御されています。それでも、MVCスタイルで書くことができます。ちょうどあなたの "C"が完全に担当していないだけです。

+1

'UIViewController'はあなたのために多くの作業をしますが、それらを使用する必要はありません。必要に応じて、完全にカスタムのView Controllerを使用できない理由はありません。しかし、あなたはAppleのコードを特別な量だけ書き直すことになるだろう。 – kubi

+0

私は特別な言葉は正しいとは思わないが、それはアプリケーションに依存します。おそらくUIViewControllerなしで、教育目的のための簡単なアプリケーションを書く良い学習体験です。結果は、あなたが思ったほどUIViewControllerがやっていない可能性が高いです。 – ax123man

+0

@ user697562これはまさに私が最近したことです。いくつかのインターネット検索の後、私はこの例を見つけました:[リンク](http://tungchingkai.blogspot.com/2008/05/two-versions-of-hello-world-sdk-vs-open.html)。次に、ウィンドウベースのiOSプロジェクトを作成し、すべてのソースとNIB、すべてのものを削除しましたが、いくつかのファイルは除きます。私はplistファイルからNIBへのリンクも削除しました。使用法UIApplicationMainのためにプログラム構造を変更する必要がありましたが、問題はありません。ウィンドウ付きのiOSアプリは、コントローラなしでもNIBファイルなしでも動作します。 –

1

@ user697562の回答は本質的に正しい:ViewTransitionsの場合、コントローラの役割はアプリケーションデリゲートによって行われます。アプリケーションは何も横にありません - いくつかの可能なトランジションエフェクトを示すために2つのビューを切り替えるだけなので、UIViewControllerは実際には必要ありません。

実際にモデルオブジェクトを呼び出すことができるViewTransitionsには何もありません。あなたがMVCの強力な例を探しているなら、ViewTransitionsは見るべきベストプロジェクトではありません。 TheElementsなどの他のサンプルプロジェクトでは、MVCの実践的なデモンストレーションが行われます。

0

委任と呼ばれる概念があります。 MVCを維持するのに役立つ概念。コントローラとモデルを分離しておくと便利です。例: - UITableView/UICollectionView:データやその他のUIの表示方法を知っています。 しかし、表示するセルや特定のインデックスに表示するデータはわかりません。これは、委任と代理オブジェクトが配置される場所です。 UICollectionViewはすべてのビュー部分を処理しますが、すべての非ビュー部分はビューに必要なデータを与えるdelgateオブジェクトによって処理されます。このように、デリゲート(通常は別のビューコントローラ)がデータソースとして機能し、UICollectionViewはUIレンダラとして機能します。

関連する問題