перейти на новую страницу в iPhone

Я новичок в разработке для iPhone,

При нажатии кнопки я хочу перейти на новую страницу с этой анимацией, UIViewAnimationTransitionFlipFromLeft

Как мне это сделать?

  -(void)btnClick{

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

        [UIView commitAnimations];

}

Когда я нажимаю кнопку, происходит анимация, но я не могу перейти на новую страницу.

Любая помощь будет оценена!


person Krunal    schedule 19.06.2012    source источник


Ответы (2)


ViewController *viewController = [[ViewController alloc]initWithNibName:@"View" bundle:nil];
[UIView beginAnimations:@"Flip" context:nil]; 
    [UIView setAnimationDuration:0.7]; 
    [UIView setAnimationCurve:UIViewAnimationOptionCurveEaseInOut]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[self.navigationController pushViewController:viewController animated:YES];
    [UIView commitAnimations];
[viewController release];

viewController — это страница, на которую вы хотите перейти.

Поп:

    [UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:0.375];
[self.navigationController popViewControllerAnimated:NO];
[UIView commitAnimations];
person ichanduu    schedule 19.06.2012
comment
чувак, это работает, но когда я нажимаю кнопку «Назад» на моей 2-й странице, анимация должна переворачиваться справа, но это происходит как popViewController. - person Krunal; 19.06.2012
comment
где я должен написать ваш EDIT? - person Krunal; 19.06.2012
comment
но моя кнопка «Назад» не является пользовательской, она является частью навигационного контроллера, так что куда мне добавить? дайте мне этот ответ, и я приму ваш ответ. - person Krunal; 19.06.2012
comment
лол .... если вы хотите добавить дополнительный фрагмент кода, вам нужно его настроить. Настройте его, поскольку он не наносит никакого вреда вашему навигационному контроллеру. Напишите код в этой ссылке в представлении2 и перед тем, как добавить анимацию. - person ichanduu; 19.06.2012

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

Вам нужно что-то вроде этого.

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.7]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:NO]; 
[view1 removeFromSuperview];
[self.view addSubview view2];
[UIView commitAnimations];

Я рекомендую прочитать эту документацию, так как я не думаю, что вы полностью понимаете взаимосвязь ViewController и View. Существуют разные способы перехода между ViewControllers и отдельными views.

Просто в случае использования этого метода ваш view1 будет LicAppViewController.view и если вы PlanPage - это представление, то view2 будет просто PlanPage.

person StuStirling    schedule 19.06.2012
comment
что написать вместо view1 и view2 ? я хочу перейти с LicAppViewController страницы на PlanPage - person Krunal; 19.06.2012
comment
[LicAppViewController removeFromSuperview]; [self.view addSubview PlanPage]; когда я пишу это, я получаю предупреждение в первой строке, так как метод +removefromsuperview не найден, а во второй строке я получаю сообщение об ошибке Expected :. - person Krunal; 19.06.2012
comment
вы не можете удалить ViewController, это должно быть его представление, которое вы удаляете, поэтому LicAppViewController.view - person StuStirling; 19.06.2012