UIView по умолчанию не имеет ссылки на UIViewController. Вы можете добавить его в свой подкласс UIView и установить его при создании UIView в UIViewController.
Если вы ищете родительский элемент контроллера представления, каждый UIViewController имеет свойство parentViewController
, но если вы хотите получить доступ к нему из UIView, вам нужно сначала добраться до вашего UIViewController.
Вы можете увидеть пример того, как создать ссылку на ваш UIViewController в вашем подклассе UIView и как / где это настроить, в Руководстве по программированию контроллера представления для iPhone , см. Раздел Создание представления программным способом в Определение класса настраиваемого контроллера представления , вот пример, для более подробной информации см. Связанный пример метронома.
- (void)loadView {
self.wantsFullScreenLayout = YES;
MetronomeView *view = [[MetronomeView alloc]
initWithFrame:[UIScreen mainScreen].applicationFrame];
view.metronomeViewController = self;
self.view = view;
self.metronomeView = view;
[view release];
}
В заголовке:
@interface MetronomeView : UIView {
MetronomeViewController *metronomeViewController;
...