iOS : ModalView with background transparent?
Use following snippet to do it on iOS 8 onwards:
For Objective C:
UIViewController *walkThru = [self.storyboard instantiateViewControllerWithIdentifier:@"WalkThroughScene"];walkThru.providesPresentationContextTransitionStyle = YES;walkThru.definesPresentationContext = YES;[walkThru setModalPresentationStyle:UIModalPresentationOverCurrentContext];[self.navigationController presentViewController:walkThru animated:YES completion:nil];
For Swift 2 :
let viewController : XYZViewController = self.storyboard!.instantiateViewControllerWithIdentifier(“XYZIdentifier”) as! XYZViewControllerviewController.providesPresentationContextTransitionStyle = trueviewController.definesPresentationContext = trueviewController.modalPresentationStyle=UIModalPresentationStyle.OverCurrentContextself.presentViewController(viewController, animated: true, completion: nil)
For Swift 4 :
let viewController = self.storyboard!.instantiateViewController(withIdentifier: "XYZIdentifier") as! XYZViewControllerviewController.providesPresentationContextTransitionStyle = trueviewController.definesPresentationContext = trueviewController.modalPresentationStyle = .overCurrentContextself.present(viewController, animated: true, completion: nil)
And the backgroundcolor of your presented viewController should be clearColor.
you can check the iOS7 example (see my comm) or you can simple try this:
remove this line from your "presenting" method
controller.view.backgroundColor = [UIColor clearColor];
now, in viewDidLoad of the ShareController
add:
self.view.backgroundColor = [UIColor clearColor]; self.modalPresentationStyle = UIModalPresentationCurrentContext; self.modalPresentationStyle = UIModalPresentationFormSheet;
PS
if you have a navigationController... use
[self.navigationController presentViewController:controller animated:YES completion:nil];
If you want your modalVC to be over the tabbar you need to define the presentation style as UIModalPresentationOverFullScreen
[_presentedViewController setModalPresentationStyle:UIModalPresentationOverFullScreen];[_presentingViewController presentViewController:_presentedViewController animated:YES completion:nil];