2017-09-18 2 views
0

J'ai une question concernant blureffects sur un contrôleur de vue. Je programme manuellement toutes mes segues pour plusieurs raisons. Mais quand je vais à un viewcontroller qui a un fond blureffect, je ne vois qu'un fond gris foncé. Comment est-ce que je peux résoudre ceci que l'effet de flou de contrôleur de vue place au-dessus d'un autre viewcontroller où le contenu du contrôleur de vue précédent peut être vu à travers?Afficher BlurEffect sur le service manuel

Les blureffects sont maintenant appliqués par storyboard avec des vues de fond transparentes.

Mon code pour seque est:

Action:

@IBAction func ToUserSections(_ sender: Any) { 
     let controller = 
     Navigation.getDestinationViewControllerWith("User", 
     controllerName: "UserSectionsVC") 
     present(controller, animated: false, completion: nil) 
    } 

Classe:

class Navigation{ 
    static func getDestinationViewControllerWith(_ 
    storyboardName:String, controllerName:String)-> UIViewController{ 

    let storyboard = UIStoryboard(name: storyboardName, bundle: nil) 
    let controller = 
    storyboard.instantiateViewController(withIdentifier: 
    controllerName) as UIViewController 

    return controller 
} 

}

espère que vous pouvez me aider, car il permettra de maximiser l'esthétique pour l'application: D

Répondre

0

essayez ceci.

let viewController : CustomViewControlller = UIStoryboard.getMainStoryboard().instantiateViewController(withIdentifier: "Identifier") as! CustomViewControlller   
    viewController.modalPresentationStyle = .overCurrentContext 
    viewController.modalTransitionStyle = .crossDissolve 
    self.present(viewController, animated: true, completion: { _ in }) 
+0

Merci pour la réponse. Pourriez-vous élaborer sur votre réponse? Où dois-je placer ceci et que dois-je omettre? Merci –

+0

Il dit maintenant: Utilisation de type non déclaré "CustomViewController". –

+0

Vous êtes supposé remplacer 'CustomViewControlller' avec le nom de votre contrôleur et si vous n'utilisez pas de contrôleur personnalisé, gardez-le seulement dans UIViewController. Le concept principal utilise 'viewController.modalPresentationStyle = .overCurrentContext viewController.modalTransitionStyle = propriété de .crossDissolve' sur votre objet viewcontroller –

0

Bon pour les autres de savoir, ce qui a fonctionné pour moi était le suivant:

A IBAction: ajouter la ligne suivante avant de présenter

controller.modalPresentationStyle = UIModalPresentationStyle.overFullScreen 

Comme ceci:

@IBAction func ToUserSections(_ sender: Any) { 
    let controller = Navigation.getDestinationViewControllerWith("User", controllerName: "UserSectionsVC") 
    controller.modalPresentationStyle = UIModalPresentationStyle.overFullScreen 
    present(controller, animated: false, completion: nil) 
}