我正在尝试制作自定义segue,以便目标视图控制器从顶部向下滑动。
我根据the documentation中的示例编写了我的代码。
问题是当执行segue时,源视图控制器变黑,然后动画发生。如何防止源视图控制器变黑?
(我已经尝试实现this answer中提供的解决方案,但屏幕在转换后变为黑色,或者恢复为源视图控制器。)
这是我的代码:
-(void)perform{
UIViewController *splashScreen = self.sourceViewController;
UIViewController *mainScreen = self.destinationViewController;
//Place the destination VC above the visible area
mainScreen.view.center = CGPointMake(mainScreen.view.center.x,
mainScreen.view.center.y-600);
//Animation to move the VC down into the visible area
[UIView animateWithDuration:1
animations:^{
mainScreen.view.center = CGPointMake(mainScreen.view.center.x, [[UIScreen mainScreen] bounds].size.height/2 );
}
];
[splashScreen presentModalViewController:mainScreen animated:NO];
}
答案 0 :(得分:3)
您的源视图控制器似乎被隐藏的原因是目标视图控制器立即显示。
在编写自定义segues时,您不能同时使用这两个视图。你可以
在上述所有情况下,我说推视图控制器,你可以改为以模态方式呈现视图控制器。实际上,这可能更适合于中间视图控制器解决方案。