在声明的地方之外访问UIImageView

时间:2014-03-26 23:41:13

标签: ios objective-c oop properties uiviewcontroller

我在名为UIImageView的文件中声明了IBOutlet UIImageView *character;GameViewController.h),我不确定如何从其他文件CharacterSelectViewController.h访问此内容。

我得到它之后我需要做的就是设置image。如何从其他文件访问此UIImageView

1 个答案:

答案 0 :(得分:0)

首先,您需要获取当前显示的GameViewController的现有实例。如何从CharacterSelectViewController执行此操作取决于它们彼此之间的关系,您可能需要设置委托关系/导航视图控制器堆栈以查找正确的实例。

获得实例后,您只需访问该属性:

gameViewController.character.image = ...;

在任何情况下,委托类型关系通常比导航视图控制器层次结构更好。这可以是简单的直接关系,也可以是使用@protocol的广义关系。

如果GameViewControllerCharacterSelectViewController作为模式,那么您可以使用

GameViewController *gameViewController = (GameViewController *)self.presentingViewController;

如果GameViewControllerCharacterSelectViewController推入其导航控制器,则可以使用:

NSArray *viewControllers = self.navigationController.viewControllers;
GameViewController *gameViewController = (GameViewController *) viewControllers[viewControllers.count - 2];