Как добавить SubViewController в середине MainViewController
Я хочу добавить subviewcontroller в основной viewcontroller, но я просто хочу, чтобы он охватывал один раздел, а не весь экран. Я хочу это в середине экрана. А также, я хочу знать, могу ли я сделать этот subviewcontroller прозрачным, чтобы я все еще мог видеть фоновое изображение моего основного viewcontroller. В настоящее время у меня есть mainconcontroller, и я добавляю еще один viewcontroller следующим образом:
MenuAllEntriesViewController *menuAE = [[MenuAllEntriesViewController alloc] init];
[menuAE setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:menuAE animated:YES];
Но мой subviewcontroller покрывает весь экран... Спасибо
1 ответ
Чтобы сделать это программно: сначала добавьте пустой UIView
на ваш основной вид. Также создайте IBOutlet из вашего MainWindowController
на вид. Это будет контейнерное представление вашего дочернего контроллера представления. Просто установите его размер и положение, где вы хотите отобразить дочерний вид.
Тогда в вашем MainWindowController.m
Вы можете использовать следующий код, чтобы добавить дочерний контроллер представления, представление которого отображается в указанном представлении в вашем основном представлении:
//keep a strong reference to the view controller
self.otherViewController = [[OtherViewController alloc] init];
[self addChildViewController:otherViewController];
//set the frame
CGFloat width = containerView.frame.size.width;
CGFloat height = containerView.frame.size.height;
self.otherViewController.view.frame = CGRectMake(0, 0, width, height);
[containerView addSubview:self.otherViewController.view];
[self.otherViewController didMoveToParentViewController:self];
Если вы используете раскадровки и целевую iOS 6, вам даже не нужно заниматься программированием. В режиме раскадровки (ранее называвшемся Interface Builder) вы можете просто удалить Container View
из библиотеки объектов на ваш основной вид. Интерфейсный Разработчик автоматически создаст дочерний контроллер представления, но вы также можете указать переход содержимого на любой другой контроллер представления.