2012-03-30 5 views
0

В настоящее время я разрабатываю приложение, которое извлекает данные карты из службы и отображает их как контакты в MKMapView. Кроме того, мое приложение было разработано с использованием раскадровки, где каждая сцена встроена в навигационный контроллер. Функция, над которой я работаю, требует, чтобы я дал пользователю возможность переключаться между видом карты и табличным представлением для заданного набора результатов. Чтобы обеспечить эту функциональность, я включил элемент панели инструментов в панели инструментов, который (при нажатии) должен отображать текущий вид и второй вид.FlipView Transition

До сих пор я пытался использовать следующий код, но не был помогло:

MapListViewController *map = [[MapListViewController alloc]init]; 
[UIView beginAnimations:@"flip animation" context:nil]; 
[UIView setAnimationDuration:3.0]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:map.view cache:YES]; 

[self.mapView removeFromSuperview]; 
[self.view addSubview:map.view]; 
[UIView commitAnimations]; 

первоначально я получил этот подход от here, но это, кажется, не работает для меня.

Еще пару вещей, чтобы отметить:

  • Обратного вид переход должен изменить только вид, который отображается в верхней и нижней панели навигации.

  • Представление нового вида модально не является вариантом, потому что я потеряю сайт своего навигационного контроллера.

  • Контроллер представления/представления, отвечающий за отображение набора результатов в формате списка (например, UITableView), содержится в одном файле xib, который, когда остальная часть приложения находится в раскадровке.

Вопрос

Что с моей текущей реализации? Как его изменить?

ответ

3

Я не использовал свой метод, но я реализовал перелистывание некоторых представлений с использованием метода класса UIView. Это было очень легко и просто. Обратитесь к документам за другими параметрами.

[UIView transitionFromView:self.firstVC.view toView:self.secondVC.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) { 
    // add any completion code here if needed. 
}]; 
+0

Работает как очарование. Благодаря! – dpalmajr

0

Привет реализации некоторые вещи, как это должно помочь вам

Принудительная использовать этот ..

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [navigationController pushViewController:viewController animated:NO]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:navigationController.view cache:NO]; 
    [UIView commitAnimations]; 

Для Попа использовать этот

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [navigationController popViewControllerAnimated:NO]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:navigationController.view cache:NO]; 
    [UIView commitAnimations];