2014-03-26 24 views
0

我已聲明UIImageViewIBOutlet UIImageView *character;)位於名爲GameViewController.h的文件中,我不確定如何從另一個文件CharacterSelectViewController.h訪問此文件。訪問UIImageView以外的位置聲明

我得到它後需要做的就是設置image。我如何從其他文件訪問此UIImageView

回答

0

首先,您需要獲取當前顯示的GameViewController的現有實例。你如何從CharacterSelectViewController這樣做取決於它們是如何相互關聯的,你可能想建立一個委託關係/瀏覽視圖控制器堆棧以找到正確的實例。

一旦你的情況下,你只需訪問屬性:

gameViewController.character.image = ...; 

在任何情況下,委託類型的關係通常比導航視圖控制器的層次結構更好。這可以是簡單的直接關係或使用@protocol的廣義關係。

如果GameViewController呈現CharacterSelectViewController作爲一個模式,那麼你可以使用

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

如果GameViewControllerCharacterSelectViewController到它的導航控制器,那麼你可以使用:

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

感謝您的快速回答北斗星。我如何設置代表?我還沒有這樣做。 – user3466512

+0

對於一個委託:http://stackoverflow.com/questions/626898/how-do-i-create-delegates-in-objective-c – Wain

+0

但是,你可能只是想設置一個直接引用(即添加一個屬性到' CharacterSelectViewController'並設置它)。同樣,這取決於控制器如何相關... – Wain