创建自定义Segue的正确方法

赫尔梅舍

现在,是的,关于如何执行自定义搜索有数百个问题(和答案)。但是,我毫不夸张地说,所有这些答案都是错误的(我见过全部50个以上)!抱歉,这听起来可能很刺耳,但事实是,建议的答案都没有给出与内置转换中的Apple(垂直覆盖等)相同(正确)的结果。

更具体地说,这是预期的结果(已通过日志确认):

  1. Segue开始(将视图添加到层​​次结构,viewWillAppear在destinationVC和viewWillDisappearsourceVC上调用并开始动画)。
  2. 在整个过程中执行动画
  3. Segue结束(动画完成,将destinationVC设置为当前VC,无论是在堆栈上还是以模式方式呈现。在viewDidAppeardestinationVC和viewDidDisappearsourceVC上调用)。

简而言之:invoke- viewWillAppear/Disappear >动画过渡-> invokeviewDidAppear/Disappear

使用苹果内置的segues,这是预期的行为,但是除了我以外,没有一个人有这个问题。许多版本甚至先将目标视图添加为子视图,然后对其进行动画处理,然后再次将其删除并调用

[srcVC presentModalViewController:destVC animated:NO];

或者

[srcVC.navigationController pushViewController:destVC animated:NO];

导致视图事件以各种随机顺序发送(与CoreAnimations相同)。

就我而言,我真正想要的只是“垂直覆盖”转换(从上到下),所有其他事件均按预期发送(如上所示)。

因此,我是否应该忍受各种丑陋的变通办法(在需要时以调用的硬编码方法来执行我的“任务”等),或者是否存在某种可重用的隐藏正确方法?

有趣的事情:甚至苹果公司都建议您以“错误”的方式进行操作,使其看起来像是正确的方法,但与他们自己的方法相比却产生不一致的结果……所以我最好的猜测是苹果在幕后这样做,却忘记了付出足够的灵活性让客户执行相同的操作(换句话说,就是很大的缺陷),或者我正经历一段艰难的旅程,看到一些不存在的问题……

赫尔梅舍

好的,这可能不是解决自定义问题(UIStoryboardSegue的子类)的真实答案,但是它确实解决了一般问题!

在对新功能进行了一些随意的阅读之后,我偶然发现了一种新的方法,可以在iOS7中引入的ViewController之间进行自定义转换,我想这就是“自定义转换”!阅读关于它在这里这里,或视频WWDC这里

我只是蘸了一下脚趾,但从根本上讲,它是一种新的,更接近系统的过渡方式,并允许更好的控制=外观更好的过渡。看完我所引用的博客提供的示例(在此处找到git ),我可以确认这一点,我们能够完成在预期情况下触发的事件的转换,将其作为一个“预期”!

由于我只是在阅读有关内容,因此我无法提供详尽的解释,但请查看链接:)

注意:这可能不应该完全取代自定义序列,但是可以类似的方式使用(请参见示例),因此,如果您需要一点额外的花哨过渡,那么这绝对是您的理想选择!基本上,您可以在情节提要中设置segues,并在prepareForSegue:-method中连接正确的过渡代理

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建自定义Segue的正确方法

来自分类Dev

在JavaScript中创建自定义错误的正确方法

来自分类Dev

创建自定义“ Todo物品”的正确方法?

来自分类Dev

自定义关系Segue

来自分类Dev

绘制自定义视图的正确方法?

来自分类Dev

创建自定义弹出窗口/警报UIView / UIViewController的正确方法

来自分类Dev

在MVC6中创建自定义模型联编程序的正确方法是什么?

来自分类Dev

如何在自定义用户配置文件创建表单中正确覆盖保存方法?

来自分类Dev

如何使用Vue-Socket.io正确创建自定义套接字方法?

来自分类Dev

为用户创建自定义“项目页面”的正确方法是什么?

来自分类Dev

创建自定义查找的最佳方法

来自分类Dev

创建自定义大写方法

来自分类Dev

如何正确创建自定义的动画可绘制对象?

来自分类Dev

如何正确创建带有消息的自定义异常?

来自分类Dev

如何正确扩展LinearLayout以创建自定义视图

来自分类Dev

自定义数据源对象未正确创建

来自分类Dev

Swift中的自定义Segue

来自分类Dev

Xcode自定义Segue动画

来自分类Dev

自定义Segue动画显示黑屏

来自分类Dev

自定义Segue中的UIKit Dynamics

来自分类Dev

Swift中的自定义Segue

来自分类Dev

自定义推送segue的Sigabrt错误

来自分类Dev

通过自定义segue传递数据

来自分类Dev

UINavigationController 的自定义 Segue 显示黑屏

来自分类Dev

Xcode:以编程方式为自定义组件创建Segue连接

来自分类Dev

创建从自定义单元格UIButton到ViewController的Segue

来自分类Dev

使用以编程方式创建的Segue IOS调用自定义过渡动画制作器

来自分类Dev

使用FormEvents自定义SonataAdmin中的字段的正确方法

来自分类Dev

如何在Ruby中正确链接自定义方法?

Related 相关文章

热门标签

归档