首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中的两个表视图之间定制动画(Segue)?

如何在iOS中的两个表视图之间定制动画(Segue)?
EN

Stack Overflow用户
提问于 2013-11-25 08:49:13
回答 2查看 450关注 0票数 2

背景:I在应用程序中有表1和表2,开始视图是表1,

要实现什么:用户向右滑动,然后从左到右滑动视图,并显示表2

My方法:

  1. 我尝试在表1和表2之间添加segue,使用push样式,问题是表2总是从右向左滑动,所以我删除了这个方法。
  2. 自定义动画:我添加了自定义的segue,实际上,当用户从左向右滑动时,我可以看到从左到右的转换。问题是:表2只显示了一次,就变成了黑色屏幕。

我的自定义密码如下:

代码语言:javascript
复制
    UIViewController* source = (UIViewController *)self.sourceViewController;
    UIViewController* destination = (UIViewController *)self.destinationViewController;
    CGRect sourceFrame = source.view.frame;
    sourceFrame.origin.x = sourceFrame.size.width;

    CGRect destFrame = destination.view.frame;
    destFrame.origin.x = -destination.view.frame.size.width;
    destination.view.frame = destFrame;

    destFrame.origin.x = 0;

    [source.view.superview addSubview:destination.view];

    [UIView animateWithDuration:0.5
                     animations:^{
                         source.view.frame = sourceFrame;
                         destination.view.frame = destFrame;
                     }
                     completion:^(BOOL finished) {
                         UIWindow *window = source.view.window;
                         [window setRootViewController:destination];
                     }];

我怀疑这是由于完成代码: setRootViewController:destination窗口,因为表1和表2使用的是uitableviewcontroller而不是uiviewcontroller,,我尝试将上面代码中的uiviewcontroller更改为uitableviewcontroller,但仍然不能工作。

有人知道怎么解决这个问题吗?源代码可以在这里下载http://d.pr/f/tAkc

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-04 10:45:20

我自己找到了答案:解决方案是删除源代码中的导航控制器。

我在开始时添加了导航控制器,因为我使用了推送(swip左/右到后/前),当我尝试定制的segue动画时,导航控制器仍然存在。

无论如何,这是最后的源代码http://d.pr/f/ewOa,您可以从表视图1到2左右滑动,而不会崩溃。

票数 0
EN

Stack Overflow用户

发布于 2013-11-25 16:18:20

所以..。对不起,我之前的回答,但我不能发表评论与我的实际声誉。

将该视图推到另一个视图后,黑色视图的问题出现在您的segue中。

尝试删除以下代码:

代码语言:javascript
复制
completion:^(BOOL finished) {
                     UIWindow *window = source.view.window;
                     [window setRootViewController:destination];

如果我删除它,segue是完整的,第二个表仍然存在,但另一个问题是,您不能滑动回第一个表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20188149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档