翻转viewController只在第一次翻转

时间:2010-11-03 21:17:45

标签: iphone uiviewcontroller uinavigationcontroller flip commitanimations

我正在翻阅背面的信息视图。我让它翻转,我在另一边有一个导航栏让我回到原来的视图(当我尝试使用模态时这是一个问题)。

我现在的问题是它只能在第一次工作:我点击信息按钮,我翻到后面。我点击后退按钮,我可以回头没问题。

但是,如果我再次点击该信息按钮,它会推送到信息视图而不是翻转。翻盖仍然很好。如果我离开根视图并转到其他地方并返回,它会再次正常翻转。 在单击信息按钮时调用的方法:

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];

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

在哪里初始化InfoViewController? 因为每次你来到Root它都会初始化并正常工作...... 当你点击后面它没有....这么容易修复将在viewWillAppear中写这个代码...每次你访问视图时都会调用它。

希望这会有所帮助..

答案 1 :(得分: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

}];