【问题标题】:Flip ViewController but maintain same NavigationController with Storyboard翻转 ViewController 但保持与 Storyboard 相同的 NavigationController
【发布时间】:2013-05-28 08:54:46
【问题描述】:

我正在尝试在导航控制器中翻转视图控制器,但到目前为止收效甚微,我尝试了数千种解决方案,但没有一个适合。我想像这样翻转控制器:

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

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

我需要保持与故事板的连贯性以进行转场。 您对如何做到这一点有任何想法或示例吗?

【问题讨论】:

    标签: iphone ios objective-c uiviewcontroller


    【解决方案1】:

    与翻转视图控制器相比,您可能会发现转换视图本身更容易。有一种翻转视图的标准方法,在这个问题中有所涉及:

    How to implement flip transition effect for UIView

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

    【讨论】:

    • 我试图创建一个自定义转场并且它可以工作(翻转效果)但我失去了连续转场的导航栏。
    【解决方案2】:

    您可以在 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。

    【讨论】:

    • 如果我使用容器视图,我会丢失导航栏堆栈以用于(Uitableview 的单元格值)和(地图中的注释)的 segue。
    • @IvanZandonà 在这种情况下,您可能需要将 segue 取出到具有容器视图的视图控制器,并为表视图创建委托以在容器视图控制器中执行 segue。跨度>
    • 您能否发布或链接示例以便我更好地理解?
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多