2017-07-10 1 views
1

J'essaie de passer d'un contrôleur de vue à onglets à un contrôleur de vue. Le segue est présent modalement. Le code est ci-dessous:Segue à partir du contrôleur de vue à onglets

override func viewDidAppear(_ animated: Bool) { 
    if (UserDefaults.standard.bool(forKey: "HasLaunchedOnce")) { 
     print("LAnched B4") 
     performSegue(withIdentifier: "Tutorial", sender: nil) 
    } else { 
     UserDefaults.standard.set(true, forKey: "HasLaunchedOnce") 
     UserDefaults.standard.synchronize() 
     performSegue(withIdentifier: "Tutorial", sender: nil) 
    } 
} 

Le problème que je vais avoir est qu'il n'y a pas de Segue qui se passe, le premier contrôleur de vue sur la barre d'onglets est représentée en premier. Y a-t-il un moyen de prioriser le segue?

+0

ajouter un segue à partir du viewController qui est présenté en premier lieu pas du TabBarController –

Répondre

1

Oui Suivez ci-dessous le code pour la réalisation de votre tâche, vous avez juste besoin d'ajouter la fonction ci-dessous dans votre contrôleur

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "Tutorial" { 
     print("INSIDE TAB") 
     if let tabVC = segue.destination as? UITabBarController{ 
      if !User().getIsLoggedIn() { 
       print("INSIDE") 
       tabVC.selectedIndex = 2 // Or you can give your viewController index 
      } 
     } 
    } 
} 

Rappelez-vous ces index commencera à partir 0 à la dernière. Donc, selon votre condition, vérifiez votre condition de segue et préparez cette section pour l'indice désiré.

Espérons que cela vous aidera merci!