2012-03-14 3 views
0

У меня есть UIViewController, в котором он добавляет UIView X в качестве подзаголовка. Из моего класса X можно получить доступ к UIViewController A?получить UIViewController из UIView

+0

Возможно, вы можете получить вдохновение здесь: http://stackoverflow.com/questions/2367348/how-to-get-a-uiviewcontroller-from-a-uiview-via-code –

ответ

1

Вы можете что-то взломать, но нет ничего, что существует в SDK, и не без оснований.

Я согласен с Kurt и добавлю, что обычно это сам контроллер представления, к которому вы хотите сохранить ссылку, тем самым сохраняя ссылку на его представление. Код в подклассе UIView надлежащим образом не должен касаться того, принадлежит ли он VC или, если на то пошло, является только подсмотром другого представления; его ответственность заключается в поддержании собственного дома. Например, вы пишете представление для iPhone, а затем порт для iPad. Если он ссылается на специфический для iPhone VC, вы должны работать, чтобы отсеять все эти функции, когда включаете его в VC iPad-типа.

Идея состоит в том, что UIKit архивируется в слоях абстракции. Одна из характеристик парадигмы LoA заключается в том, что слои должны в целом взаимодействовать с другими слоями сестры и ниже. Но, как правило, не нужно (или возможно) для слоя смотреть вверх на более абстрактную концепцию. UIViewController и его варианты являются абстрактными, поскольку классы попадают в UIKit. Они находятся на вершине пищевой цепи, как бы - никакие другие классы не потребляют свою функциональность. Требование указания указателей только боком или вниз также помогает предотвратить циклические ссылки.

4

Cocoa не предоставляет никаких прав для доступа к этому объекту. Честно говоря, если вы обращаетесь к нему, вы, вероятно, будете нарушать некоторые из MVC.