2011-07-25 31 views
0

在Class1中,我有一个名为“cDte1”的变量。我想从Class2中设置它。设置另一个类的var

Class1.h:

@interface Class1 : UIViewController { 

    NSString *cDte1; 

} 

@property (readwrite,assign) NSString *cDte1; 

@end 

在Class2.m我进口Class1.h

那么我想这从Class2中

Class1.cDte1 = @"test"; 

,但不起作用。我做错了什么?

编辑,更多信息。如果我需要设置var,然后显示视图,下面的代码不起作用,因为我认为这个类有两个不同的实例?

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

好吧,这是有道理的...我需要设置变量,然后打开该类,并使用presentModalViewController显示它。这些不是这个班的两个不同的例子吗? –

+0

请参阅上面的更多评论 –

+0

更新后... – yan

1

你需要调用它的类,而不是类本身的实例。例如:

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

请参阅上面的其他评论 –

0

从Class1创建一个对象,然后尝试访问它。

您无法使用类名访问属性。

如何

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]; 

这应该工作,如果你的ViewController想推是1类的一个实例。确保有一个相应的InterfaceBuilder文件(Class1.xib)。
如果您手动创建视图(没有IB,没有.xib),请不要拨打initWithNibName:bundle:,而只需拨打init

+0

请参阅上面的额外评论 –

+0

更新我的答案 –

+0

谢谢你做到了,它的工作原理! –