Полностью согласен с Беном. Попробуйте задать противоположный вопрос. Почему Apple создала свойства tabBarController
и navigationController
в UIViewController
. Этого можно было бы, а может быть, и нелегко, осуществить, взломав свойство parentViewController
. Примерно так, чтобы найти контроллер представления вкладок, было бы распространено во всех приложениях:
UIViewController *current = ...;
while([current parentViewController] != nil) {
current = [current parentViewController];
if([current isKindOfClass:[UITabViewController class]]) {
// do something
}
}
Да, это, вероятно, идет вразрез с интуицией, поскольку навигация или контроллер панели вкладок, скорее всего, также является родительским контроллером представления.
Нет никакого вреда при использовании свойства parentViewController
. Чтобы пройти предупреждение, закажите в этой теме .
Но как только вы выставите какие-либо данные / поведение в родительском контроллере представления иерархии, эти проверки isKindOfClass
станут слишком распространенными.