Надеюсь, вы можете помочь мне с этой проблемой.У меня проблемы со следующим кодом:
-(IBAction)swapViews:(id)sender{
myappAppDelegate *delegate = (myappAppDelegate *) [[UIApplication sharedApplication] delegate];
ThirdViewController *thirdView = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
[delegate switchView:self.view toView:thirdView.view];
[thirdView release];
}
Как вы можете видеть, я выделил свой ViewController и впоследствии выпустил его.Проблема в том, что когда я меняю представления на свой ThirdViewController, а затем хочу вернуться к предыдущему виду, приложение вылетает.Вот как я вернусь к своему предыдущему виду:
-(IBAction)goBack:(id)sender{
myappAppDelegate *delegate = (myappAppDelegate *) [[UIApplication sharedApplication] delegate];
FirstViewController *firstView = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[delegate switchView2:self.view toView:firstView.view];
[firstView release];
}
Опять та же проблема при выпуске вида.Если я не освобождаю представления, приложение не будет аварийно завершено, но произойдет много утечек памяти, и, учитывая, что у меня более 15 ViewControllers, приложение, в конечном счете, завершится сбоем, если я буду использовать его в течение длительного времени.
Есть идеи, что я делаю не так?PS: я использую делегат для анимации / перехода представления.
Спасибо!
Редактировать: switchView: toView: код ниже
-(void)switchView:(UIView *)view1 toView:(UIView *)view2 {
[UIView beginAnimations:@"Animation" context:nil];
[UIView setAnimationDuration:0.75];
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.window cache:YES];
[view1 removeFromSuperview];
[window addSubview:view2];
[UIView commitAnimations];
}