私の質問は、一般的にビューコントローラ、デリゲートについてです。私はUIView、UIViewController、Delegates、およびSourcesを完全に快適に感じます。例えば、UITableViewはそうです。それはすべて意味をなさない。MVCの基本:カスタムビューにUIViewController、Delegate、またはSourceを追加する必要がありますか?
私は最初の実際のカスタムビューを実装しました。関係するXIBはありません。これはMailアプリケーションのようなオートコンプリート・アドレス・ピッカーです。受信者が追加されるたびに青いボタンが作成され、元のようなキーボードがすべてサポートされます。
サブクラスのUIView。コントローラーもデリゲートもソースもありません。私はそれらのいずれかを持っている必要があるのだろうか?すべてを、クリーンな実装にする。
ビューコントローラが私の場合に行う意味では私の指を置くことができません。私のカスタムビューは、コントロールのように機能し、UIButtonにはコントローラもありません。 ビューのケースでは何が制御されますか?
私の考えのいくつか:
ソースの場合:現在のビューは、それが自動的に補完アドレスが含まれているプロパティ「PossibleAutocompleteRecipients」を持っています。私はこれが "ソース"実装の候補になると思います。しかし、それは本当にそれの価値があるのですか?コントローラをビューに渡してプロパティをコントローラに配置したいと思います。
選択した受信者は、 "SelectedRecipients"プロパティを使用して取得できます。しかし、ビューには値を格納しないでください。それはどこに行くのだろうか?コントローラーに?
"AllowSelectionFromAddressBook"のようなプロパティはどうですか?ここでもUIButtonと比較すると、これらのプロパティはボタンの「安全な」プロパティに似ています。だから、彼らは視野に入ることが許されている。
デリゲートには、 "WillAddRecipient"、 "WillRemoveRecipient"などのメソッドがあり、ユーザーはアクションが発生しないようにTRUE/FALSEを戻すことができます。正しい?
UIViewからではなく、まずUIControlから継承する必要がありますか?
最後に、私のカスタムビューは、デバイスが回転していると完全に回転します。なぜすべてのビューをしないのですか?なぜShouldAutoRotateToDeviceOrientation()を実装するコントローラが必要なのでしょうか?
上記の記述は意味がありますか?最終的には、私のウェブサイトにソースを提供します。私はそれを実装するのに時間がかかり、MonoTouchでMail-Appのようなオートコンプリートコントロールの同様の実装が見つからないので、共有したいと思います。 私はできるだけ多くのことを学び、理解し、それをソースに含めるだけです。
ルネ
私は一般的にビューコントローラの感覚を得る。しかし、この場合ではなく、私のコントロールはうまく動作しません。しかし、どこに線を描いていますか?ビューコントローラはいつ使用する必要がありますか?私のコントロールで回転もうまくいきます。 UITextFieldにはコントローラーもなく、うまく回転します。それは私に少し困惑しているものです。 – Krumelur