У меня есть контроллер вида, который имеет два контейнера. У меня есть контроллеры представлений для каждого из этих контейнеров. Эти три диспетчера представлений находятся в разных досках. Как программно добавить два контроллера представления в два контейнера?Программно добавляя два контроллера представления в два вида контейнера
ответ
Сначала вы должны получить раскадровки. Для того чтобы сделать это, вы должны использовать UIStoryboard
класса
UIStoryboard *firstStoryboard = [UIStoryboard storyboardWithName: @"FirstStoryboardName" bundle: nil];
UIStoryboard *secondStoryboard = [UIStoryboard storyboardWithName: @"SecondStoryboardName" bundle: nil];
UIStoryboard *thirdStoryboard = [UIStoryboard storyboardWithName: @"ThirdStoryboardName" bundle: nil];
Далее вам необходимо получить исходные контроллеры Скрин этих раскадровок (предполагая, что вид контроллера firstStoryboard содержит эти два контейнера)
UIViewController *secondVC = (UIViewController *)[secondStoryboard instantiateInitialViewController];
UIViewController *thirdVC = (UIViewController *)[thirdStoryboard instantiateInitialViewController];
Теперь добавьте эти два контроллера отображения в контейнерах в контроллере вида, который содержит контейнеры
UIViewController *firstVC = (UIViewController *)[firstStoryboard instantiateInitialViewController];
// TODO: Add secondVC and thirdVC as the children of firstVC
вы можете обратиться к другому раскадровки через
[[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"secondVCSrorybradID"];
и вы должны дать VC, что вы хотите создать идентификатор.
И чем вы могли бы добавить его в любой кадр с addSubview:
Так что, чтобы ответить на ваш вопрос о добавлении g контроллеры представлений в контейнеры ... Контейнерные представления - это простой способ добавить контроллеры дочерних представлений в построитель интерфейса с помощью segues.
Чтобы сделать это программно, сначала создайте контрольные контроллеры представления из каждой соответствующей раскадровки (см. Ответ Ch0k018).
Контроллеры представлений, которые находятся в представлениях контейнера, затем должны быть добавлены в качестве контроллеров детского вида на главный контроллер представления. Вы можете прочитать о сдерживании здесь https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html
// Add the child view as subview
childViewController.view.frame = self.containerView.bounds;
[self.containerView addSubview:childViewController.view];
// Need to call these methods to complete
[self addChildViewController:tableViewController];
[childViewController didMoveToParentViewController:self];
От компании Apple документы:
Вот что делает этот код:
Он называет контейнера addChildViewController: метод добавления ребенка. Вызов метода addChildViewController: также вызывает метод willMoveToParentViewController для ребенка: метод автоматически. Он обращается к свойству вида child для извлечения представления и добавляет его в свою собственную иерархию представлений. Контейнер устанавливает размер и положение ребенка перед добавлением вида; контейнеры всегда выбирают, где отображается содержимое ребенка. Хотя этот пример делает это, явно устанавливая фрейм, вы также можете использовать ограничения компоновки, чтобы определить позицию представления. Он явно вызывает дочерний метод didMoveToParentViewController: метод, чтобы сигнализировать о завершении операции.
- 1. Программно добавляя представления к представлению контроллера вида с помощью AutoLayout
- 2. динамически добавляя два вида один ниже другого
- 3. Отклонить два модальных контроллера вида
- 4. Два контроллера вида и избегающие спагетти
- 5. MVC Diagram - Два вида для одного контроллера
- 6. Как добавить два контроллера вида в UIPageViewcontroller
- 7. Как загрузить xib в два вида контейнера в пределах одного контроллера вида
- 8. Отправка сообщений с родительского контроллера представления в представления контейнера
- 9. Передача данных в два вида
- 10. Два контроллера вида с аналогичной функциональностью VIPER
- 11. Как реализовать два вида просмотра внутри контроллера?
- 12. Вызов главного контроллера вида из контроллера контейнера
- 13. разматывание на два разных контроллера вида в iOS
- 14. один контроллер два вида
- 15. Программно изменяемый класс контроллера вида просмотра (быстрый)
- 16. Сравните два вида в salesforce
- 17. Два вида - один ViewModel
- 18. WPF MVVM два вида, одна модель вида
- 19. Связь контроллера дочернего представления с контроллером контейнера
- 20. Два контейнера - два Pythons - один сайт-пакет?
- 21. Магистральная группаВ два вида?
- 22. Как вернуть два частичных вида из контроллера как html?
- 23. Одно приложение, два comps, два разных вида
- 24. Два вида деятельности или два фрагмента?
- 25. Два контейнера перекрываются
- 26. Два web_view на два вида деятельности
- 27. iOS установка переменной вида из контроллера представления программно
- 28. Django - два вида, одна страница
- 29. iOS как центрировать два вида через PureLayout
- 30. Swift (iOS) два вида прокрутки в одном контроллере представления