Переключение видов (с анимацией), почему мой экран становится белым, когда я использую removeFromSuperView? - PullRequest
0 голосов
/ 15 февраля 2012

Я только что выполнил задачу C и улучшаю текущее приложение для iPhone.Предыдущие коды были сделаны кем-то еще.Я пытаюсь переключить представления назад и добавить анимацию скручивания страницы, но когда я пытаюсь вернуться назад (убрать из просмотра), мой экран просто становится белым.Я понимаю, что имею в виду неправильное представление, но не знаю, как отнести его к правильному.

- (IBAction) switchBack {

[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView: self.view.superview cache:YES];

//[self.navigationController popToRootViewControllerAnimated:YES];

[self.view removeFromSuperview];

[UIView commitAnimations];

}

Закомментированный popToRootViewController позволяет мне вернуться на предыдущую страницу.Любая помощь могла бы быть полезна.Я схожу с ума от всех этих взглядов> <Спасибо! </p>

Ответы [ 3 ]

2 голосов
/ 15 февраля 2012

Попробуйте что-то вроде этого:

[UIView transitionWithView:self.navigationController.view duration:1.0 options:UIViewAnimationOptionTransitionCurlDown
                animations:^{
                    [self.navigationController popToRootViewControllerAnimated:NO];
                }
                completion:NULL];
1 голос
/ 15 февраля 2012

это произошло из-за того, что вы пытаетесь удалить представление из его суперпредставления, что не является способом, которым оно было добавлено ранее, не используйте removeFromSuperView, если вы не использовали addSubview при показе представления самостоятельно.

Вы должны добавить этот код к родителю, который вызывает ваше текущее представление

viewNotLoggedHome.modalTransitionStyle = UIModalTransitionStylePartialCurl;

таким образом вы указали анимацию перехода "частичная скручиваемость" для вида, который вы нажимаете

и просто удалите весь свой блок анимации в функции switchBack, чтобы он состоял только из

-(IBAction)switchBack 
{ 
[self.navigationController popToRootViewControllerAnimated:YES]; 
}
0 голосов
/ 15 февраля 2012

Вместо usign self.view, которое является ссылкой на ваше суперпредставление, вам нужно использовать имя представления, которое вы хотите использовать.fe: - Если у вас есть view1 и view2 - вы можете удалить view1 с помощью

[view1 removeFromSuperview];
...