2010-11-21 15 views
-1

次の例では、MyViewControllerによって格納されているビューコントローラに数値を渡すメソッドが呼び出されたときを示しています。後で別のメソッドで使用したいので、View Controllerがその番号を格納しない問題のみです。助けてください。ありがとうございました。 TouchesBeginとメソッドを使用して情報を渡して格納する方法

MyViewController.h

@class MyView; 

@interface ViewController : UIViewController { 
    int number; 
} 

-(void)assignNumber(int)sentNumber; 

@property int number; 

MyViewController.m

-(void)loadView { 
    MyView *aView = [[MyView alloc] initWithFrame:wholescreen]; 
    self.view = aView; 
    [aView release]; 
} 

-(id)initWithNibName...... { 
    number = 0; 
} 

-(void)assignNumber:(int)sentNumber { 
    number = sentNumber; 
} 

MyView.h & MyView.m

デフォルト、[viewController assignNumber:5];

+0

番号が5に保存されているかどうかを確認するために実行したチェックはありますか? –

答えて

1

@synthesizeを宣言しないと、viewController内部の外部からnumberにアクセスすることはできません。試してみてください。

@synthesize number; 

をMyView.mの先頭に追加してください。これにより、セッターとゲッターが作成されます。そして、あなたは

[viewController setNumber:5]; 

であなたの

[viewController assignNumber:5]; 

コールを交換し、viewController.numberまたは[viewController number]のいずれかでそれにアクセスすることができます。

+0

'@ synthesize'はコンパイラにプロパティのアクセサを実装するように指示するだけです。クラスの '@interface'(ヘッダファイル内)で既にプロパティを宣言していなければなりません。そして、* that *はプロパティを他のクラスのオブジェクトに公開するものです。逆に、 '@interface'でプロパティ(またはそのアクセサメソッドを個別に宣言している)を使用している場合は、コンパイラに(' @ synthesize')したり、自分で実装したりすることができます。そのプロパティを使用する他のオブジェクトと同じように見えます。 –

0

に触れたとき、あなたがしたいこと変数nuを合成するあなたのViewControllerの実装でmber。

関連する問題