在 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 期间,目标控制器视图出现在源视图控制器中的主要内容,如果未能解决你的问题,请参考以下文章
Flutter iOS 构建失败:目标 kernel_snapshot 失败:异常:快照创建期间出错:null 构建失败
iOS 7 中的 ViewController Undo Segue