翻转ViewController但使用Storyboard维护相同的NavigationController

时间:2013-05-28 08:54:46

标签: iphone ios objective-c uiviewcontroller

我正在尝试翻转导航控制器内的viewcontroller,但到目前为止收效甚微,我尝试了数以千计的解决方案,但都不适合。我想像这样翻转控制器:

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

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

我需要为segue保留故事板的系数。 你有任何想法或如何做到这一点的例子吗?

2 个答案:

答案 0 :(得分:2)

您可能会发现转换视图本身更容易,而不是翻转视图控制器。有一种翻转视图的标准方法,这个问题包括在内:

How to implement flip transition effect for UIView

或者,您可以尝试通过自定义segue转换视图控制器本身,但我怀疑在UIView级别处理翻转会更容易。

答案 1 :(得分:1)

您可以在Storyboard中创建一个包含容器视图的新UIViewController,并将列车网络地图视图控制器分配给容器视图。

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

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。