ios 页面跳转问题

程序启动后从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];

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 5,477评论 2 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,087评论 25 709
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,207评论 1 9
  • 三年去拼两天 两天去赢四年 时间 省略了太多可能性 哪是两天注定的。
    倩何人换取阅读 876评论 0 0
  • 城墙坍塌着爬上时光的沧桑 梦魇中追溯历史的辉煌 晨钟暮鼓多年不再敲响 千百年间走来的古堡 血脉里流淌着遥远的绝唱 ...
    竹林野客阅读 1,631评论 0 3