我已聲明UIImageView
(IBOutlet UIImageView *character;
)位於名爲GameViewController.h
的文件中,我不確定如何從另一個文件CharacterSelectViewController.h
訪問此文件。訪問UIImageView以外的位置聲明
我得到它後需要做的就是設置image
。我如何從其他文件訪問此UIImageView
?
我已聲明UIImageView
(IBOutlet UIImageView *character;
)位於名爲GameViewController.h
的文件中,我不確定如何從另一個文件CharacterSelectViewController.h
訪問此文件。訪問UIImageView以外的位置聲明
我得到它後需要做的就是設置image
。我如何從其他文件訪問此UIImageView
?
首先,您需要獲取當前顯示的GameViewController
的現有實例。你如何從CharacterSelectViewController
這樣做取決於它們是如何相互關聯的,你可能想建立一個委託關係/瀏覽視圖控制器堆棧以找到正確的實例。
一旦你的情況下,你只需訪問屬性:
gameViewController.character.image = ...;
在任何情況下,委託類型的關係通常比導航視圖控制器的層次結構更好。這可以是簡單的直接關係或使用@protocol
的廣義關係。
如果GameViewController
呈現CharacterSelectViewController
作爲一個模式,那麼你可以使用
GameViewController *gameViewController = (GameViewController *)self.presentingViewController;
如果GameViewController
推CharacterSelectViewController
到它的導航控制器,那麼你可以使用:
NSArray *viewControllers = self.navigationController.viewControllers;
GameViewController *gameViewController = (GameViewController *) viewControllers[viewControllers.count - 2];
感謝您的快速回答北斗星。我如何設置代表?我還沒有這樣做。 – user3466512
對於一個委託:http://stackoverflow.com/questions/626898/how-do-i-create-delegates-in-objective-c – Wain
但是,你可能只是想設置一個直接引用(即添加一個屬性到' CharacterSelectViewController'並設置它)。同樣,這取決於控制器如何相關... – Wain