2017-04-26 15 views
1

これを考えると、これはMVCの質問のようなものですが、思いついた答えを見つけ出すことができないので、自分に尋ねて明瞭にする必要があると感じています。カスタムビューを別のビューに埋め込むための適切なMVC構造体は何ですか?

私はxibを使って作成したカスタムビューを持っています。それは、現在、私のアプリの他の4つの場所で使用される予定です。各使用法は同じ機能を持っているので、基本的には複数回再利用できるカスタムコントロールオブジェクトを作成しています。

私の「コントロールオブジェクトは、」UITextFieldので構成され、2 UIButtons。

私が実装しようとしている機能は、最初のボタンはUIPickerを表示し、2番目のボタンは基本的に終了ボタンであり、UITextFieldのresignFirstResponderだけです。前述のように、これはどこでも使用されます。それは私のコントロールオブジェクトのすべてのインスタンスに対して一貫した動作であるので、私は、カスタムUIViewのサブクラスに直接この機能を構築するために、私は好奇心だ何

されるが、それは大丈夫でしょうか?または、私は一緒に行くカスタムUIViewControllerサブクラスを作成する必要がありますか?

現在、私のアプリのための私のメインのUIViewControllerに私は自分のカスタムUIViewの「コントロールオブジェクト」のインスタンスを作成し、他のコントロールオブジェクトと同じそれらを扱っております。私は実際にそれと一緒に行くために、カスタムのUIViewControllerクラスを作成する必要がある場合は、よく、私はどのように私は(誰かがこの上のリソースに私を指示することができない限り)

をやるべきことに、別のスレッドのためのより多くの質問があります

これまでのところ、Webを検索しても私にとっては何も得られていませんでした。一般的にiOS開発でこれまで見てきたすべてから、UIViewControllerは実際には主観的に見えるビュー私はこれについてのいくつかの用語を見逃しているかもしれません)。

私の直感では、何のビューコントローラは、私が説明してるシナリオでは必要ありませんということですが、私は可能であれば、確認のいくつかの並べ替えを取得しようとしたいと思います。

+2

カスタムビュー内の機能やロジックがあまり複雑でない限り、サブクラスで行うのは問題ありません。カスタムオブジェクトには、コールバックの* done *ボタンを押したときに必要なテキストを返す機能も必要です。あなたのデータモデルが分かれている限り、あなたのケースで本当であるように見えるあなたの 'UIView'オブジェクトから、問題はないはずです。 – Rikh

答えて

1

ので何のアプローチが絶対的に正しいまたは絶対に間違っではありません、特効薬はありません。あなたがここで説明しているのは、その状態を変えるビューです。だからあなたのUIViewサブクラスにすべてを入れることは完全にOKです。また、KISSの原則にも準拠しています。

しかし、私が間違っていれば、あなたのカスタムビューの入力 - ピッカーからのテキストと選択された値は実際にビュー自体には影響しませんが、添付されているviewControllerに。だからあなたはその入力をホストviewControllerに渡す必要があります。これは、デフォルト実装のプロトコルで実現できます。したがって、入力データの処理は一度だけ行われますが、あなたが望むものは何でもviewControllerにアタッチすることができます。

+0

よかった、ありがとう! テキストフィールドはビューコントローラに戻されますが、ピッカービューはビュー自体にのみ影響します。制御対象は測定値を入力するためのもので、ピッカーは測定単位を変更するものです。 NSNumberFormatterの乗算値を変更するだけです。 値が更新されたときにコントローラに通知できるように、ビュー用にすでにデリゲートプロトコルが設定されているので、ビュー自体のメソッドで現在の値を取得できます。私は正しい軌道に乗っているように聞こえる。ありがとう! – Mathieson

1

あなたが言ったことのすべてに基づいて、私は別のビューコントローラを必要としません。 ViewControllersが通常処理するものであることを考えれば、答えが少し不明確になることがわかりますが、カスタムビューでこれを処理するだけで十分でしょう。

あなたはより多くの機能またはより複雑な操作を追加した場合は、おそらく他の選択肢を模索する時間ですが、今の私は、単一のビューは大丈夫だろうと思います。

関連する問題