Как использовать Flip Transition для перехода от UIView к TableViewController с помощью NavigationController? - PullRequest
3 голосов
/ 27 февраля 2010

У меня есть два вида: один имеет только кнопку (вид 1), а другой содержит вид таблицы с панелью поиска (экран2) Когда пользователь нажимает эту кнопку в представлении 1, я хочу, чтобы представление 1 перевернулось и отобразило экран 2.

View 2 находится внутри навигационного контроллера с навигационной панелью вверху.

Ниже то, что у меня есть сейчас. Анимация перехода работает и переходит на второй экран, но в представлении 2 отсутствует панель поиска и заголовок из панели навигации. Оба установлены в виде 2.


[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];

navigationController = [[UINavigationController alloc] init];

bestbuyProducts = [[BestBuyProductsViewController alloc] initWithNibName:@"BestBuyProductsViewController" bundle:nil];  
[navigationController pushViewController:bestbuyProducts animated:NO];
[navigationController.view setFrame: [self.view bounds]];
[bestbuyProducts release];

[self.view addSubview:navigationController.view];

[UIView commitAnimations];

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 февраля 2010

Для запуска вашего UINavigationController неправильно инициализируется. Используйте initWithRootViewController: метод, подобный этому:

bestbuyProducts = [[BestBuyProductsViewController alloc] initWithNibName:@"BestBuyProductsViewController" bundle:nil];  

// Initialise the navigation view with the bestbuyProducts view controller
navigationController = [[UINavigationController alloc] initWithRootViewController:bestbuyProducts ];

Затем попробуйте использовать переход модального вида для создания анимации, проще и безопаснее начать:

[navigationController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:navigationController animated:YES];

[navigationController release];
[bestbuyProducts release];
1 голос
/ 27 февраля 2010

ОК, вот правильная версия

<code>
navigationController = [[UINavigationController alloc] initWithRootViewController:bestbuyProducts];
[bestbuyProducts setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:navigationController animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...