我想在视图控制器之间进行自定义转换,从左到右滑动,就像 AppLaucher 中的页面之间的 iOS 基本转换效果一样,但会变暗。
我在 viewControllers 之间有一个自定义 segue(我们称它们为 FirstVC 和 SecondVC)。对于变暗,我有一个在动画过程中淡入的黑色视图(SecondVC 比 FirstVC 暗)。我有一个类 - UIStoryboardSegue 的子类 - 用于我的自定义 segue,并-(void)perform
实现了该方法。在这种方法中,我已经实现了(更多细节):
//...Initials frames
UIView *blackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
blackView.backgroundColor = [UIColor blackColor];
blackView.alpha = 0;
[UIView animateWithDuration:0.3 animations:^{
blackView.alpha = 0.5;
//...Animations
}
completion:^(BOOL finished){
}];
我确切地说这两个视图控制器位于两个不同的导航视图控制器中。
对于变暗,我想在转换完成时修改SecondVC类中声明的“darkView”属性,以存储转换后的变暗。
为此,我想做以下选项之一(如果其中一个工作我不需要其他选项):
在完成块中直接访问SecondVC的darkView属性并修改
检测动画何时完成并在该点修改属性,在 SecondVC 类中实现的方法中
写入
[dest.view addSubview:whiteView];
完成块(“dest”是目标视图控制器),并在 SecondVC 的另一种方法中访问这个子视图
我已经为这三种解决方案尝试了很多东西,但我非常感谢你的帮助。谢谢