博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
transitionFromViewController 返回NO
阅读量:6116 次
发布时间:2019-06-21

本文共 2036 字,大约阅读时间需要 6 分钟。

transitionFromViewController 方法 

- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(5_0);复制代码

交换两个子视图控制器的位置(由于添加的顺序不同,所以子试图控制器在父视图控制器中存在层次关系)

fromViewController:当前显示的子试图控制器,将被替换为非显示状态 toViewController:将要显示的子视图控制器 duration:交换动画持续的时间,单位秒 options:动画的方式 animations:动画Block completion:完成后执行的Block复制代码

 切换子视图控制器

- (void)viewCotrollerChange:(UISegmentedControl *)sender {    if (sender.selectedSegmentIndex == _selectedIndex) {        return;    }    _selectedIndex = sender.selectedSegmentIndex;    if (sender.selectedSegmentIndex == 0) {        [self changeToNormalImageView];    }else if (sender.selectedSegmentIndex == 1) {        [self changeToVRImageView];    }else if (sender.selectedSegmentIndex == 2) {        [self changeToVideView];    }}- (void)changeToNormalImageView {    [self addChildViewController:self.normalImageVC];    UIViewController *oldViewController = _currentViewController;    [self transitionFromViewController:_currentViewController toViewController:self.normalImageVC duration:0.5 options:UIViewAnimationOptionTransitionNone animations:^{    } completion:^(BOOL finished) {        if (finished) {            [_normalImageVC didMoveToParentViewController:self];            [_currentViewController willMoveToParentViewController:nil];            [_currentViewController removeFromParentViewController];            _currentViewController = self.normalImageVC;        }else {            _currentViewController = oldViewController;        }    }];}复制代码

在写的过程中出现过一个很奇怪的问题,切换到normalImageView的时候,transitionFromViewController的completion的回调 finished一直为NO;导致子视图控制器的切换失败。

经过多次调试后发现,normalImageVC的viewWillAppear里有个刷新,每次切换到该子视图控制器的时候都会刷新,导致切换失败。增加duration的动画时间效果不明显,因为用户可以疯狂的点击Segment进行切换。 最终通过修改normalImageVC的viewWillAppear方法,不让他刷新,解决了这个问题,这里做一个简单的记录。

转载地址:http://blvka.baihongyu.com/

你可能感兴趣的文章
基于DRBD+corosync做Mysql的高可用集群服务
查看>>
我的友情链接
查看>>
[置顶] axis 开发webservice
查看>>
常用mysql语句
查看>>
开源 java CMS - FreeCMS2.8 站内信
查看>>
自定义java validation
查看>>
js面向对象的学习
查看>>
Scala控制结构
查看>>
http://blog.csdn.net/codywangziham01/article/details/38088017(AFNetworking)
查看>>
linux下的消息队列
查看>>
2009.11.26-教育报道--在美留学生数量创历史新高
查看>>
exception.ZuulException: Forwarding error
查看>>
基于Zookeeper的分布式共享锁
查看>>
go学习--数组
查看>>
LaTeX - tikz画摆线
查看>>
js 全选/反选
查看>>
Spring IOC/DI和AOP原理
查看>>
iOS解决TextField被键盘遮住的问题
查看>>
从内容/用户画像到如何做算法研发
查看>>
2 我的第一个手机提交数据到tomcat服务器
查看>>