3

作成UIViewControllerしたカスタムクラスのビューを含むを作成しました。ビューをファイルの所有者ビューアウトレットに接続しました。正しくレンダリングされ、実際の問題はありません。ただし、ビューコントローラインスタンスからビュー内のメソッドを呼び出したいと思います。たとえば、と呼ばれdrawSomethingます。したがって、コントローラーのメソッド内で、次を使用します。

[self.view drawSomething];

できます。しかし、カスタムビュー定義内のメソッドを認識していないように見えるため、プリコンパイラの警告が表示されます。私のアプローチはここで間違っていますか?ローカル変数を作成してキャストすると、警告が明らかに消えます。ビューのヘッダーファイルをインポートしたので、それは問題ではありません。

些細なことを見逃しているような気がします。

私のカスタムビューの.hには次のものが含まれています。

-(void) drawSomething;

私のカスタムビューの.mには次のものが含まれています。

-(void) drawSomething { <code> };
4

1 に答える 1

12

self.viewUIView基本的には、ViewControllerのメインビューとして使用されるへのポインタです。ビューはカスタムメソッドを持つカスタムクラスであるため、カスタムメソッドを呼び出すにはカスタムクラスへのキャストが必要です。

[((MyCustomClass *)self.view) drawSomething];

それ以外の場合は、存在しないdrawSomething標準を呼び出しています。UIView

于 2012-06-16T15:42:47.990 に答える