翻转ViewController,但保持与Storyboard相同的NavigationController

我试图翻转导航控制器内的视图控制器,但迄今为止一点成就,我尝试了成千上万的解决scheme,但没有适合。 我想要像这样翻转控制器:

按下button进入地图: http : //i39.tinypic.com/fabul3.jpg

按相同的button返回更改图像: http : //i40.tinypic.com/2qa1y0h.jpg

我需要为故事板保留故事板。 你有什么想法或例子如何做到这一点?

而不是翻转视图控制器,你可能会发现它更容易转换视图本身。 有一个标准的方法来翻转视图,这个问题已经被覆盖了:

如何实现UIView的翻转过渡效果

或者,你总是可以尝试通过自定义的inheritance来转换视图控制器本身,但是我怀疑在UIView级别处理翻转会容易得多。

您可以在Storyboard中创build一个包含容器视图的新UIViewController,并将火车networking视图控制器分配给容器视图。

然后在代码中,您可以从故事板实例化地图视图控制器:

self.mapViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MapViewController"]; 

假设networkMapViewController是您想要翻转到mapViewController的初始视图控制器,请阅读容器视图的更多内容以了解以下几行:

 [self.networkMapViewConroller willMoveToParentViewController:nil]; [self addChildViewController:self.mapViewController]; [self.mapViewController didMoveToParentViewController]; 

那么你可以使用视图控制器方法transitionFromViewController:toViewController:duration:options:animations:completion:

 [self transitionFromViewController:self.networkMapViewController toViewController:self.mapViewController duration:.5 options:UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionTransitionFlipFromRight animations:nil completion:^(BOOL finished) { [self.networkMapViewController removeFromParentViewController]; }]; 

您将需要编码类似的线路从地图视图控制器更改回networkMapViewController。