2011-07-25 11 views
0

Class1には「cDte1」という名前のvarがあります。私はClass2から設定したいと思います。別のクラスからvarを設定する

Class1.h:Class2.mで

@interface Class1 : UIViewController { 

    NSString *cDte1; 

} 

@property (readwrite,assign) NSString *cDte1; 

@end 

私はその後、クラス2

Class1.cDte1 = @"test"; 

からこれを試みたが、それは動作しませんClass1.h

を輸入しました。私は何を間違えたのですか?

EDIT、詳細varを設定してからビューを表示する必要がある場合、クラスの2つの異なるインスタンスがあると仮定すると、以下のコードは機能しません。

Class1 *obj = [[Class1 alloc] init]; 

Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; 

obj.cDte1 = @"7/25/2011"; 


[self presentModalViewController:myView animated:YES]; 


[myView release]; 


[obj release]; 

答えて

1

あなたはクラスのインスタンス、ないクラスのメンバ変数を設定します。

Class1 obj = [[Class1 alloc] init]; 
obj.cDte1 = @"test"; 

編集:

だからあなたのような何かを行うことができますあなたの例では、試してみてください。

Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; 
myView.cDte1 = @"7/25/2011"; 
[self presentModalViewController:myView animated:YES]; 
[myView release]; 
+0

OKです...私はvarsを設定し、そのクラスを開き、presentModalViewControllerを使って表示する必要があります。それらはクラスの2つの異なるインスタンスではありませんか? –

+0

上記追加のコメントをご覧ください –

+0

更新された投稿... – yan

1

あなたはクラスではなく、クラス自体のインスタンスでそれを呼び出す必要があります。次のようなもの:

Class1 *instance = [[Class1 alloc] init]; 
instance.cDte1 = @"test"; 
+0

上記の追加のコメントを参照してください –

0

Class1からオブジェクトを作成してからアクセスしてください。

クラス名のプロパティにアクセスすることはできません。あなたがプッシュしたいのViewControllerは、クラス1のインスタンスである場合、これは動作するはずですどの程度

Class1 *object1 = [[Class1 alloc] init]; 
object1.cDte1 = @"Test"; 
+0

上記の追加のコメントを参照してください –

0
Class1 *viewController = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; 
viewController.cDte1 = @"7/25/2011"; 

[self presentModalViewController:viewController animated:YES]; 

[viewController release]; 

。対応するInterfaceBuilderファイル(Class1.xib)を用意してください。
ビューを手動で作成する場合(IB、no .xibなし)はinitWithNibName:bundle:ではなく、initを呼び出します。

+0

上記の追加のコメントを参照してください。 –

+0

私の答えを更新 –

+0

それをしていただきありがとうございます! –

関連する問題