Объекты, которые являются неизменяемыми, не могут изменить свое состояние после того, как они были созданы.
Существует три основных причины, по которым можно использовать неизменяемые объекты, когда это возможно, все из которых помогут уменьшить количество ошибок, которые вы вводите в свой код:
Есть также некоторые другие оптимизации, которые вы можете выполнить в коде, когда вы знаете, что состояние объекта является неизменным - например, кеширование вычисленного хэша - но это оптимизация и, следовательно, не столь интересная .
В дополнительном контроллере попробуйте
id mainViewController = [self.view.superview nextResponder];
и проверьте, является ли это контроллер представления, который вы ищете.
Документация Apple для - [UIResponder nextResponder]
:
UIView реализует этот метод, возвращая объект UIViewController, который управляет им (если он есть) или его супервизор (если нет)