2017-10-02 3 views
1

J'ai donc créé une barre de fond personnalisée avec UIButton. Maintenant j'essaye de reproduire le fondu en transition ainsi quand vous cliquez sur un des boutons de la barre inférieure enverrai à un autre contrôleur de vue et montrera cette vue. J'ai réussi à le faire mais ma barre de navigation n'est pas personnalisée et chaque fois que je change de vue, la vue principale passe sous la barre de navigation.Transition de la barre inférieure personnalisée vers une autre vue dans Swift?

J'utilise ce code:

//MARK: Main view 
func yourFoodGoalAction() -> Bool { 
    print("transition: YourFoodGoal") 

    let nextViewController = YourFoodGoal() 
    let toView = nextViewController.view 

    UIView.transition(from: view!, to: toView!, duration: 0.3, options: [.transitionCrossDissolve]) { (true) in 
     print("disolve") 
     UIView.animate(withDuration: 0.3, animations: { 
      self.navigationItem.title = "Your Goal" 
     }) 
    } 

    return true 
} 

Et pour revenir à la vue (vice-versa):

func selectedBarButtonAction() -> Bool { 
     print("transition: YourFoodGoal") 

     let nextViewController = YourFoodVC() 
     let toView = nextViewController.view 

     UIView.transition(from: view!, to: toView!, duration: 0.3, options: [.transitionCrossDissolve]) { (true) in 
      UIView.animate(withDuration: 0.3, animations: { 
       self.navigationItem.title = "Today's Meals" 
      }) 
     } 

     return true 
    } 

Que dois-je faire si mon point de vue ne passer sous la barre de navigation une fois que je change entre eux? Je ne veux pas utiliser la vue conteneur car chaque vue sera personnalisée. Tout ce qui est fait par programmation.

+0

Comment avez-vous ajouté la barre d'outils à l'application? Parce que vous devriez pouvoir l'ajouter en sous-vue à la fenêtre principale. et il devrait être sur le dessus – arvidurs

+0

La barre d'outils est un NSObject qu'il est appelé par le biais d'une fonction. Il reste sur le dessus. Le problème est la barre de navigation qui reste là mais à mon avis, elle va en dessous quand je change de vue. –

+0

Pouvez-vous ajouter quelques captures d'écran pour illustrer le problème – arvidurs

Répondre

0

J'ai trouvé ma réponse. J'appelais la transition modale mal. Les modaux passent en plein écran avec la vue principale. Je viens d'incorporer la navigation lorsque je présente la nouvelle vue et j'appelle le modal à partir de là:

func todaysMealsAction() { 
    let yourFoodVC = YourFoodVC() 
    yourFoodVC.modalTransitionStyle = UIModalTransitionStyle.crossDissolve 
    let navBarOnModal: UINavigationController = UINavigationController(rootViewController: yourFoodVC) 
    self.present(navBarOnModal, animated: false, completion: nil) 
}