1

我正在翻到背面的信息视图。我让它翻转,并且我在另一侧有一个导航栏,可以让我回到原始视图(当我尝试使用模式时这是一个问题)。

我现在的问题是它只在第一次工作:我点击信息按钮,我翻转到背面。我点击返回按钮,我可以毫无问题地返回。

但是,如果我再次点击该信息按钮,它会推送到信息视图而不是翻转。后翻还是不错的。如果我离开根视图并去其他地方然后回来,它会再次正确翻转。在我单击信息按钮时调用的方法中:

InfoViewController *controller = [[[InfoViewController alloc] init] autorelease];
[UIView beginAnimations:@"animation" context:nil];
[self.navigationController pushViewController: controller animated:NO]; 
[UIView setAnimationDuration:0.8]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations];

谢谢你的帮助!

4

2 回答 2

1

你在哪里初始化 InfoViewController ?因为每次你进入 Root 时,它都会被初始化并且工作正常......当你点击返回时它不会......所以很容易修复将在 viewWillAppear 中编写这段代码......每次你访问时都会调用它看法..

希望这可以帮助..

于 2010-11-03T21:54:47.030 回答
0

这是一个较新的实现,它使用来自较新的 UIView API 的块并依赖于 ARC。

这是您推动新的翻转屏幕的方式:

InfoViewController *controller = [[InfoViewController alloc] init];
[self.navigationController pushViewController:controller animated:NO];


[UIView transitionFromView:self.view
                    toView:controller.view
                  duration:0.8f
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                completion:^(BOOL finished) {

    // Add completion stuff here

}];

这是解雇它的片段:

[self.navigationController popViewControllerAnimated:NO];

[UIView transitionFromView:controller.view
                    toView:self.view duration:0.8f
                   options:UIViewAnimationOptionTransitionFlipFromRight
                completion:^(BOOL finished) {

    // Add completion stuff here

}];
于 2012-12-19T12:37:15.267 回答