2017-05-12 1 views
0

J'ai créé un storyboard. Le premier écran est l'écran de lancement (UIViewController personnalisé appelé LaunchViewController) et l'écran suivant est UITabBarController personnalisé appelé SampleTabViewController.iOS swift - passer au programme personnalisé UITabBarController suivant

Je veux l'avoir automatiquement dans le SampleTabViewController après 2 secondes sur le LaunchViewController.

Mais certains échantillons que j'ai trouvés sont seulement à partir du UIViewController personnalisé à UIViewController personnalisé.

J'ai déjà défini 'sampleTabViewController' sur l'écran associé à "SampleTabViewController" sur le storyboard.

Voici mon code.

class LaunchViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
    print("LaunchViewController is initialized"); 

    let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 2 * Int64(NSEC_PER_SEC)) 
    dispatch_after(time, dispatch_get_main_queue()) { 
     // Put your code which should be executed with a delay here 

     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let controller = storyboard.instantiateViewControllerWithIdentifier("sampleTabViewController") 


     self.navigationController.pushViewController(controller, animated: true) 

    } 
} 

J'ai essayé "self.presentViewController (, animé CareGiverViewController(): true, achèvement: néant)". Cela fonctionne, mais l'écran suivant est vide.

Je viens de commencer à apprendre l'application iOS avec Swift.

Merci. Essayez de définir TabbarViewController en tant que rootViewController.

+0

Est-ce votre LaunchViewController intégré dans un contrôleur de navigation? – DonMag

Répondre

1

Remplacer avec votre push lignes viewController:

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
let controller = mainStoryboard.instantiateViewController(withIdentifier: "sampleTabViewController") as! UITabBarController 
UIApplication.shared.keyWindow?.rootViewController = controller 
+0

Merci pour la réponse. mais que voulez-vous dire "Essayez de définir TabbarViewController en tant que rootViewController"? Dois-je changer quelque chose sur le storyboard? – user826323

+0

ne pas mettre ce code dans LaunchViewController et vérifier – KKRocks

+0

Je n'ai pas défini le rootViewController. Je viens d'utiliser ce code. Ça marche. let mainStoryboard: UIStoryboard = UIStoryboard (nom: "Principal", paquet: nil) let controller = mainStoryboard.instantiateViewControllerWithIdentifier ("careGiverViewController") as! UITABBarController UIApplication.sharedApplication(). KeyWindow? .rootViewController = contrôleur Mais comment ajouter une animation? – user826323