2011-12-26 15 views
2

簡単な質問:iOSアプリケーションを作成しています。ビューコントローラは、ビューに渡すべき座標を計算します。私はUIViewのdrawRectメソッドを使用しているので、私の質問はどのようにビューにデータを送るべきですか?私は代理人とNSNotificationCenterを認識していますが、これはモデルビューコントローラの一部であるため、よりシンプルな方法が必要であると感じています。そうでなければ、それはOKです、私はただ疑問に思いました。ありがとう!UIViewとUIViewControllerをリンクする最善の方法

答えて

2

私はUIViewでプロパティを宣言し、変更が必要な場合はUIViewControllerから値を変更します。

+0

ありがとうございます!私はもっ​​と簡単な方法があることを知っていました。もう1つの質問は、しかし、私はどのようにUIViewControllerから値を設定するのですか?ビューに接続されているUIViewのサブクラスがありますが、 '[self.view doSomething]'を呼び出すとエラーが返されます。私はUIViewのインスタンスを作成し、その値を設定する必要がありますか?あるいは、 'self.view = instanceOfUIView'のようなものを言うべきですか? – omh1280

+0

'UIViewController'によって提供されるデフォルトの' view'プロパティは、新しいプロパティを追加することができません。プロパティで 'UIView'のサブクラスインスタンスを使用し、インスタンスをサブビューとしてUIViewControllerインスタンスのデフォルトビューに追加する必要があります。 '[self.view addSubview:instanceOfUIView];' – petershine

+0

@Peterのメソッドは確実に機能するはずです。しかし、どのようなエラーが発生したのかは分かりません。 self.viewが既にUIViewサブクラスのインスタンスで、サブクラスに "doSomething"というメソッドがある場合、[(SubClassName *)self.view doSomething]は確実に機能するはずです。それはあなたが試したものですか?あなたが見たエラーは何ですか? – barley

0

ユーザーUIViewサブクラスのプロパティまたはメソッド。ビューを手動で再描画する必要がある場合は、いつでも[self setNeedsDisplay]を呼び出すようにしてください。

この場合、委任者またはNSNotificaitonCenterは確実に過剰です。 UIViewControllerはおそらくUIViewへのポインタを保持するので、ビューと直接対話する方がずっと簡単です。

関連する問題