Мне нужно добавить новый вид (с ViewController) поверх другого. Пользователь некоторое время взаимодействует с этим новым представлением, а затем я хочу удалить его. В более старой версии Xcode я смог добавить его в качестве подпредставления. Теперь я получаю ошибку EXC_BAD_ACCESS.
Я не хочу, чтобы добавленный вид был модальным. Мне нужно увидеть исходный фон через добавленный вид. Я много читал о новых пользовательских контейнерах, addChildView и presentView. Я не вижу, чтобы какой-либо из них был ясным ответом.
Вот старый код, который работал раньше -
Действие в главном ViewController:
-(IBAction)showWhiteView:(id)sender
{
WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self.view addSubview:whiteView.view];
}
Действие в добавленном представлении для его удаления:
-(IBAction)removeView:(id)sender
{
[self.view removeFromSuperview];
}
Спасибо за вашу помощь.
Может быть, ВИЗУАЛЬНЫЙ ПРИМЕР поможет объяснить - скажем, основной вид - это океан, с анимированными волнами и движущимися облаками, контролируемыми контроллером MainView. Пользователь что-то нажимает, и я хочу добавить лодку (WhiteView) к основному виду. Я хочу, чтобы пользователь взаимодействовал с лодкой: нажмите здесь, когда парус открывается, нажмите там, где опускаются якоря, и т. Д. (Нужны методы WhiteViewController). В конце концов, я хочу удалить лодку из океана.
Спасибо, Тим - Добавлен новый код:
-(IBAction)showWhiteView:(id)sender
{ WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self addChildViewController:whiteView];
[whiteView didMoveToParentViewController:self];
[self.view addSubview:whiteView.view]; }
и в WhiteViewController для удаления:
-(IBAction)removeView:(id)sender
{ [self.view removeFromSuperview];
[self removeFromParentViewController]; }
Я с нетерпением жду дальнейших предложений по улучшению этого положения.
Спасибо всем!