考虑到网上有很多教程可以帮助您了解如何使用自定义UIStoryboardSegue在视图控制器之间进行自定义动画过渡,我想知道是否存在“正确“做到这一点的方法。正确的自定义过渡自定义转换方式 - 无边框效果
我要指出,我在看如何做到这一点模态,不与导航控制器。
我意识到有很多新方法是专门为iOS 7中视图控制器之间的转换设置动画而设计的,但如果我需要定位iOS 6呢?或者如果在iOS 7中有这样一个缺点(其中有,请参阅我的SO问题here),那么使用自定义搜索方法就可以轻松解决这个问题。
的问题是,大部分的教程去是这样的:
在您的自定义SEGUE执行方法,你会先添加一个视图控制器的视图到另一个,然后再执行任何你想要的自定义动画。那么动画完成后,你会调用这个方法(如提交或解聘模态)
[sourceViewController presentViewController:destinationViewController animated:NO completion:NULL]
的问题是,在viewWillAppear中:和viewDidAppear:被称为两次,viewWillDisappear等被调用一次,范围内的所有过渡动画。这不是期望的行为。
有没有一种合适的方式,这是可以实现的?有关此问题的进一步讨论,请参阅Phil Beauvoir在其博客上发布的tutorial,并向下滚动至评论。
此外,我发现有人问了几乎相同的确切问题,但是我仍然问我的问题,因为我的研究发现有几个方面没有在他的question中解决。另外,对他的问题给出的答案并没有解决这个问题,而是提供了另一种方法,即iOS 7方法不适合我的特殊需求。
这个问题是一种广泛和非特定的。我不知道有一种“适当的方式”来进行转换,您是否正在尝试完成特定的转换?你试图避免仅仅是视图外观回调的不正确数量(和时间?),还是有更多的副作用? – rdelmar
@rdelmar没有不敬意,但这个问题既不宽泛,也不具体。如果你仔细阅读这个问题并查看链接,你会看到所有建议的自定义动画方式(动画本身无关紧要 - 只知道它是自定义的),你会发现它们有缺陷并且有副作用。我相信菲尔波伏瓦的教程是关于这个主题的更简单而全面的内容之一,通过跟随它并测试他的样本,你可以看到有不需要的副作用。所以,再一次,有没有一种合适的方式? – daveMac
@rdelmar是的,副作用是视图外观回调被称为不正确的次数(有些人被称为真的不应该 - 我看着你viewWillDisappear :)这些可以解决,但自定义赛格的执行方式显然存在问题。苹果自己的赛格不会导致这些副作用。 – daveMac