Во-первых, будьте более внимательны к тому, что вы говорите. Вы не добавить подвидов в viewcontrollers, добавить подвид взгляды, то есть (self
является контроллером вида)
[self.view addSubView:myView];
Кроме того, вы не давите взгляды, но viewcontrollers, т.е.
[self.navigationController pushViewController:otherViewController animated:YES];
Теперь, с первым вышеприведенным утверждением, у представления есть новое subview. Если вы нажмете новый вид через навигационный контроллер (второй оператор) над исходным представлением, это не влияет на исходное представление. Итак, добавление subview, которое вы добавили, по-прежнему будет присутствовать после появления нового представления (контроллера).
Смотрите так: ваш первый контроллер просмотра имеет вид View1. Вы добавили subview в View1, отлично. Теперь нажатие с использованием UINavigationController вызывает новый вид контроллера над вашим старым контроллером просмотра, поэтому теперь вы видите его вид, View2. Это не имеет никакого отношения к View1.
Чтобы ответить на ваш второй вопрос, см Add same subview multiple times to view
Короткий ответ, вид будет удален из и немедленно вставляется в родительское представление. Таким образом, хотя и бессмысленно, ничего плохого не произойдет (подпрограмма будет просто выдвинута на передний план).
Подсветка может не быть после попса. Если ваше приложение получает предупреждение о памяти, контроллеры скрытого представления очищают свои представления, чтобы освободить RAM. Вы должны быть готовы к повторному созданию и повторному добавлению subview при вызове viewDidLoad. – jsd