2014-10-21 1 views
2

현재 사용자가 버튼을 누르면 모달보기를 제공하는 MapView 프로젝트에서 작업하고 있습니다.삭제 모달 블러 효과 모달보기를 닫은 후

modalView 내가 흐림 효과 모델 뷰를 제공 할 수있다 iOS의 제

문제의 전형적인 흐림 효과를 사용하고 해제 할 수 있지만지도의 흐림 효과를 제거 할 수 없다.

현재 코드 : modalView을 기각하면서

ViewController.m

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
    NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex]; 
    if ([buttonTitle isEqualToString:@"Set a alarm"]) { 

     [self blurEffectMethod]; 

     AlarmViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"setAlarm"]; 
     modal.transitioningDelegate = self; 
     modal.modalPresentationStyle = UIModalPresentationOverCurrentContext; 
     [self presentViewController:modal animated:YES completion:nil] 

-(void)blurEffectMethod { 
    UIVisualEffect *blurEffect; 
    blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 
    UIVisualEffectView *visualEffectView; 

    if (_radiusSlider.hidden == NO) { 
     visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 
     visualEffectView.frame = _mapView.bounds; 
     [_mapView addSubview:visualEffectView]; 
     //Hide Bars & Slider 
     [self.navigationController setNavigationBarHidden:YES animated:YES]; 
     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
     _toolBar.hidden = YES ; 
     _radiusSlider.hidden= YES; 
     _sliderIndicator.hidden = YES; 
    } 

} 

ModelViewController.m

- (IBAction)dismisModal:(id)sender { 
    [_audioPlayer stop]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

은 어떻게지도보기에서 흐림 서브 뷰를 삭제합니까?

답변

1

이렇게하면 모달 흐림 효과를 얻을 수 있습니다.

let vc = UIViewController() 
vc.view = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) 
vc.modalPresentationStyle = .OverFullScreen 

let nc = UINavigationController(rootViewController: vc) 
nc.modalPresentationStyle = .OverFullScreen 

presentViewController(nc, animated: true, completion: nil) 

여기서는 prepareForSegue에 .OverFullScreen 플래그를 사용하고 있습니다. 그리고 내 viewController에 흐림 UIVisualEffectView가 설정되었습니다.