美文网首页
ios 页面跳转问题

ios 页面跳转问题

作者: 7分醉 | 来源:发表于2016-04-15 11:03 被阅读353次

    程序启动后从a ->b ->c
    在c页面要求点击某按钮直接跳到a
    使用方法:

    [self.navigationController popToViewController [self.navigationController.viewControllers objectAtIndex:n] animated:NO];

    n为页面的push顺序

    跳转失败

    提示:Unbalanced calls to begin/end appearance transitions for xxViewController

    原因:同一时间进行多次跳转
    比如,扫码场景,在a页面点击按钮进行扫码,通常扫码完成后要返回a页面,扫码后通常会调用某代理方法来返回扫码结果,在获取扫码结果后跳转到b页面。
    那么这行起来时,如果你想在获取结果后立刻跳转到b页面你会发现出现跳转失败。

    解决方法

    已扫码场景的例子来说,我们默认的跳转顺序是先返回到a再跳转到b,所以在返回到a页面的语句作修改。

    [self.navigationController popToRootViewControllerAnimated:NO];

    参考:参考1

    页面跳转方向

        //设置动画,使跳转方向为从左侧进来
        //CATransition 对象创建
        CATransition *transition = [CATransition animation];
        
        ///时间间隔  1.0f最慢   0.1f最快
        transition.duration = 0.5f;
        
        ///动画的开始与结束的快慢
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
        //上一行也可以写为 transition.timingFunction = UIViewAnimationCureEasyInOut;
        
        ///设置动画效果
        transition.type = kCATransitionReveal ;
        /*     type的其他类型:
         kCATransitionFade       交叉淡化过渡
         kCATransitionMoveIn    新视图移到旧视图上面
         kCATransitionPush        新视图把旧视图推出去
         kCATransitionReveal    将旧视图移开,显示下面的新视图
         */
        
        ///设置动画方向
        transition.subtype = kCATransitionFromLeft;
        /*   subtype的其他类型
         kCATransitionFromRight; 从右面进来
         kCATransitionFromLeft; 从左面进来
         kCATransitionFromTop; 从上面进来
         kCATransitionFromBottom; 从下面进来
         */
        
        ///在想添加CA动画的VIEW的层上添加此代码 addAnimation: forKey:
        [self.navigationController.view.layer addAnimation:transition forKey:@"transition"];
        
        //注意:将这些代码加在 navigationController 的 pushViewController:animated: 方法之前,并且加入该代码后要将pushViewController:animated:方法的animated 参数传NO
        PSCourierInfoViewController *vc = [[PSCourierInfoViewController alloc] init];
        [self.navigationController pushViewController:vc animated:NO];
    

    亲测可用。。。。。
    如有问题可留言交流!

    相关文章

      网友评论

          本文标题:ios 页面跳转问题

          本文链接:https://www.haomeiwen.com/subject/heknlttx.html