2010-06-16 56 views
0

我是iPhone开发新手,需要一些帮助来添加子视图。对象addSubview只能在viewDidLoad中工作

我有一个可重复使用的对象,我将它存储在单独的.h .m和xib文件中。 我想在我的主项目的视图控制器中使用这个对象。我已经包含了头文件,并且该对象的赋值不会生成错误。我可以将对象加载到我的主项目中,但只能在viewDidLoad方法内使用它。我打算在屏幕上显示这些对象中的一些,并且正在寻找更强大的解决方案,然后只需连接多个形状对象的副本即可。

只要我尝试访问viewDidLoad之外的对象,它就会产生一个变量未知错误 - 首先在此函数中使用。

这是我的viewDidLoad方法:

shapeViewController * shapeView = [[shapeViewController的alloc] initWithNibName:@ “shapeViewController” 束:无];

[self.view addSubview:shapeView.view];

//这是问题线 //此代码改变显示的图形对象

上[shapeView updateDisplay:@ “123456”];

----但viewDidLoad以外的代码会生成错误。

所以总结一下,除了当我尝试访问其余方法中的shapeView对象时,所有东西都可以工作。

在此先感谢

回答

2

您需要声明shapeView比如在你的界面,而不仅仅是一个函数内部。然后函数中的代码变成初始化。

所以,在你的.h文件中,在@interface里面你写的声明

shapeViewController *shapeView; 

而在你的viewDidLoad中,您将初始化你宣布之前什么:

shapeView = [[shapeViewController alloc] initWithNibName:@"shapeViewController" bundle:nil]; 
[self.view addSubview:shapeView.view]; 

现在,您可以在整个班级中使用shapeView。

+0

嗨伊万斯,感谢您的意见。当我在我的界面中声明shapeView实例时,出现错误“ShapeView的本地声明”隐藏了实例变量。 – DecodingSand 2010-06-16 17:22:42

+0

为清晰起见进行了编辑 – ivans 2010-06-17 12:10:03

+0

感谢Ivan,That worked! – DecodingSand 2010-06-17 23:16:28

相关问题