iPhone - Доступ к родительскому контроллеру просмотра?

У меня есть 2 контроллера просмотра A, B

  1. ViewController A отображается на экране
  2. Представление ViewController B добавляется к представлению ViewController A.

Как я могу получить доступ к ViewController A из ViewController B без передачи указателя?

self.parentViewController не работает, он возвращает nuil


person aryaxt    schedule 13.01.2011    source источник


Ответы (2)


Это должно работать, хотя и не очень элегантно:

UIViewController* viewControllerA = 
    (UIViewController*) [[self.view superview] nextResponder];
person Felix    schedule 13.01.2011
comment
это возвращает UINavigaionView, но не возвращает контроллер представления. Я закончил тем, что вручную передал родителя ребенку - person aryaxt; 14.01.2011

Почему представление viewController B добавлено к представлению viewController A? Если вы хотите добавить представление в viewController A, вы можете сделать это, выделив новый UIView и отобразив его поверх текущего представления.

С другой стороны, если вы пытаетесь перейти от одного контроллера представления к другому, то есть переходя от A к B, а затем обратно к A, вы должны использовать UINavigationController, как указано в Руководстве по программированию контроллера представления в документации Apple.

Источник: См. руководство по программированию контроллера

РЕДАКТИРОВАТЬ: если вы хотите использовать [[self parentViewController] yourMethodHere];, вам понадобится иерархия представлений, для которой вы можете использовать UINavigationController. В вашей текущей схеме нет построенной иерархии, поэтому нет родительского контроллера представления.

person aqua    schedule 13.01.2011