Iphone 翻转viewController仅在第一次翻转

Iphone 翻转viewController仅在第一次翻转,iphone,uiviewcontroller,uinavigationcontroller,flip,commitanimations,Iphone,Uiviewcontroller,Uinavigationcontroller,Flip,Commitanimations,我正在切换到背面的信息视图。我把它翻转过来,在另一边有一个导航栏,可以让我回到原始视图(当我试图使用模态时,这是一个问题) 我现在的问题是,它只在第一次工作:我点击信息按钮,我翻转到背面。我点击“后退”按钮,我可以毫无问题地后退 但是,如果我再次点击“信息”按钮,它将转到“信息”视图而不是翻转。倒转还是可以的。如果我离开根视图,转到其他地方并返回,它将再次正确翻转。 在单击“信息”按钮时调用的方法中: InfoViewController *controller = [[[InfoViewCon

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

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

但是,如果我再次点击“信息”按钮,它将转到“信息”视图而不是翻转。倒转还是可以的。如果我离开根视图,转到其他地方并返回,它将再次正确翻转。 在单击“信息”按钮时调用的方法中:

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

谢谢你的帮助

在哪里初始化InfoViewController? 因为每次你进入根目录时,它都会初始化并正常工作。。。 当你点击后退时,它不会。。。。因此,简单的解决方法是在ViewWillExample中编写此代码,每次访问视图时都会调用它


希望这有帮助。

在哪里初始化InfoViewController? 因为每次你进入根目录时,它都会初始化并正常工作。。。 当你点击后退时,它不会。。。。因此,简单的解决方法是在ViewWillExample中编写此代码,每次访问视图时都会调用它


希望这会有所帮助。

这里有一个更新的实现,它使用来自更新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

}];

这里有一个稍新的实现,它使用来自较新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

}];

谢谢-解决了这个问题!不幸的是,它提出了另一个问题,我将分别询问。非常感谢。谢谢-解决了这个问题!不幸的是,它提出了另一个问题,我将分别询问。非常感谢。