получить UIViewController из UIView - PullRequest
0 голосов
/ 15 марта 2012

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

Ответы [ 2 ]

4 голосов
/ 15 марта 2012

Какао не предоставляет никаких свойств для доступа к нему.По правде говоря, если вы получаете доступ к нему, вы, вероятно, нарушаете некоторые принципы MVC .

1 голос
/ 15 марта 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...