Пользовательская анимация перехода UINavigationController при нажатии кнопки Назад - PullRequest
4 голосов
/ 28 июля 2011

Я сделал пользовательский переход в UINavigationController, код, который я использовал:

SecondView *newView = [[SecondView alloc] initWithNibName:nil bundle:nil];
[UIView beginAnimtaions:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown];
[self.navigationcontroller pushViewController:newView animated:NO];
[UIView commitAntimations];
[newView release];

Но эта анимация перехода применяется только на Вперед, могу ли я применить ее на Назад?

Спасибо

1 Ответ

11 голосов
/ 28 июля 2011

Конечно, просто определите пользовательский UIBarButtonItem для кнопки «Назад» и свяжите его с пользовательским методом, который делает то же самое, что вы делаете для нажатия контроллера, но вместо нажатия вам нужно будет выдвинуть контроллер представления.

т.е. сначала вы создаете кнопку возврата (в методе init или viewDidLoad)

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(back)];
self.navigationItem.leftBarButtonItem = backBarButtonItem;
[backBarButtonItem release];

, а затем в методе возврата вы можете сделать свою собственную анимацию

-(IBAction)back {

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration: 1.0];

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:YES];

    [[self navigationController] popViewControllerAnimated:NO];

    [UIView commitAnimations];


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...