在 IOS 中的 PushSegue 期间,目标控制器视图出现在源视图控制器中

Posted

技术标签:

【中文标题】在 IOS 中的 PushSegue 期间,目标控制器视图出现在源视图控制器中【英文标题】:During PushSegue in IOS destination controller views are appearing in source viewcontroller 【发布时间】:2014-04-09 12:13:41 【问题描述】:

我遇到了一个奇怪的问题,对我来说很奇怪,我有一个 ViewController 1 和 ViewController 2 , ViewController2 有很多子视图,在 ViewDidLoad 期间会显示适当的子视图,我最近更改了应用程序的其他部分,但突然面临一个从 viewcontroller 1 (VC1) 切换到 viewcontroller 2(VC2) 时出现问题,以下是问题

在从 VC1 到 VC2 的 Push Segue 期间,在 VC2 viewdidload 上,我将一个子视图 x 位置移动到 -320 并将另一个子视图 x 位置移动到 0,以获得子视图的从左到右的动画,发生在动画期间,VC2 的subview 出现在 VC1 中,因为这是 VC2 中的 flash,在 popViewController 动画期间也发生了同样的事情。

我检查了所有代码,没有发现任何奇怪的地方!

总而言之,问题是,

    在推送过程中,Viewcontroller 2 子视图出现在 viewcontroller 1 中(部分) 在弹出视图控制器期间也会发生同样的事情

代码如下所示,

在 VC1 上 didSelectRowAtIndexPath

ViewController2 *view = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];
        [view setIS_EDIT_REQ:YES];

        [self.navigationController pushViewController:view animated:YES];

在 VC2 ViewDidLoad 上,

[fromView setFrame:CGRectMake(-self.view.bounds.size.width, fromView.frame.origin.y, fromView.frame.size.width,fromView.frame.size.height)];
[toView setFrame:CGRectMake(0, toView.frame.origin.y, toView.frame.size.width, toView.frame.size.height)];

任何帮助将不胜感激。

【问题讨论】:

请贴出相关代码 我通过添加相关代码进行编辑,我检查了它的简单 push segue,只有在 push segue 时才会出现问题 【参考方案1】:

尝试在 VC2 中的 viewDidLoad 中剪裁 self.view:-

self.view.clipsToBounds = YES.

【讨论】:

是的,谢谢!它有效!!!,我现在明白了,但奇怪的是其他 ViewController 可以在相同的视图模式下正常工作,而没有这种限制。无论如何谢谢你!

以上是关于在 IOS 中的 PushSegue 期间,目标控制器视图出现在源视图控制器中的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何在没有数据库的情况下临时持久化数据?

Flutter iOS 构建失败:目标 kernel_snapshot 失败:异常:快照创建期间出错:null 构建失败

iOS 7 中的 ViewController Undo Segue

反向海格IOS

将 UITableView 的标题更改为 iOS 中的单元格名称

故事板 - 弹出到视图控制器然后推送导致多次推送