UIStoryboardSegue& UIVisualEffectView - 完成块退出后模糊效果丢失

时间:2014-10-24 15:19:14

标签: ios cocoa-touch uiview uiviewcontroller uikit

我有一个小应用程序,它包含一个带有UIImageView的视图控制器。当用户点击屏幕时,呈现具有自定义转换的tableview控制器(模型)。转换将UIBlurEffectview添加到呈现的tableview。所需的效果是在模糊图像上显示UITableView。

当显示tableview时,它会显示瞬间的模糊视图。但是,一旦完成块退出(在presentViewController:animated:completion),视图就会变黑。

完成块退出前的示例: enter image description here

完成块退出后: enter image description here

这是segue代码:

UIViewController *sourceController = self.sourceViewController;
UIViewController *destinationController  = self.destinationViewController;


UIVisualEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurView = [[UIVisualEffectView alloc]initWithEffect:blurEffect];
blurView.frame = destinationController.view.frame;


[destinationController.view setOpaque:NO];
[destinationController.view setBackgroundColor:[UIColor clearColor]];
[destinationController.view insertSubview:blurView atIndex:0];
[destinationController setModalPresentationStyle:UIModalPresentationFullScreen];

[sourceController presentViewController:destinationController animated:NO completion:^{
    NSLog(@"Completed");
}];

我有点卡在哪里去。我知道在调用完成块之前的最后一个调用是在呈现的控制器上的viewDidAppear,并且没有改变任何东西。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

找到解决方案。如果您正在使用Modal segue,则需要将Presentation从默认设置为全屏。