Swift: Programmatisch der übergang von der 1-Ansicht zu einem anderen über eine TabBar-und Navigation-Controller

Sich der Benutzer anmeldet, und landet auf viewNumOne, füllen Sie Ihren Namen und Adresse und zu sehen bekommen viewNumTwo und viewNumThree. Sie jetzt Abmelden. Wenn Sie sich wieder anmelden, ich möchte Sie zu gehen Sie direkt zu viewColorBlue (dies ist, wo ich bin mit dem problem).

(Login-Screen)
View-Controller mit login-Felder. Nachdem Sie sich angemeldet haben gehen Sie zu den rootVC das ist eine TabBar-und dann landen Sie auf der ersten Registerkarte, die viewNumOne (diese funktioniert einwandfrei)

(Root)
TabBar:

(Erste Tab – tabBar[0])
viewNumNavController > viewNumOne (name/Adresse info-Felder sind hier) > viewNumTwo > viewNumThree

(Zweite Tab – tabBar[1])
viewColorNavController > viewColorRed > viewColorBlue > viewColorWhite (logout-button ist hier)

Hier ist der code, ich habe versucht, aber es stürzt ab:

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

let tabBarController = mainStoryboard.instantiateInitialViewController() as! UITabBarController
tabBarController.selectedIndex = 1

let viewColorNaviCon = tabBarController.viewControllers![1] as! UINavigtionController
let viewColorBlueVC = viewColorNaviCon.topViewController as! ViewColorBlueController
self.presentViewController(viewColorBlueVC, animated: true, completion: nil)
InformationsquelleAutor Lance Samaria | 2016-06-19



One Reply
  1. 2

    Dauerte es 20 Stunden, um dies herauszufinden, ich hoffe das spart jemand anderes die ganze Zeit. Was Sie tun müssen, ist einen reset der TabBar Navigation-Controller der root-view-controller.

    Dies ist der erste Schritt. An, dass der Benutzer landete auf viewNumOne, wo Sie ausgefüllt Ihrem Namen und Adresse. Vorausgesetzt, Sie ordnungsgemäß auszufüllen, Ihren Namen und Adresse, wenn Sie sich abgemeldet und wieder angemeldet würde es keine Notwendigkeit für Sie, um zu sehen, diese Szene wieder. Eine neue Szene von vc ’s müssen Sie zunächst die tab-bar-navigation-controller, den Sie ändern möchten, die vc‘ s für.

    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let tabBarController = mainStoryboard.instantiateViewControllerWithIdentifier("MainTabBarController"
    tabBarController.selectedIndex = 1
    let viewNumNavController  = tabBarController.viewControllers![1] as! ViewNumNavigationController

    Dies ist der zweite Schritt. Sie haben, um ein array der neuen view-Controller Sie möchten, dass der Benutzer zu sehen.

        //Array of view controllers you want to set as the Navigation Controller's new array of VC's
    let viewColorRedVC = mainStoryboard.instantiateViewControllerWithIdentifier("ViewColorRedController") as! ViewColorRedController
    let viewColorBlueVC = mainStoryboard.instantiateViewControllerWithIdentifier("ViewColorBlueController") as! ViewColorBlueController
    let viewColorWhiteVC = mainStoryboard.instantiateViewControllerWithIdentifier("ViewColorWhiteController") as! ViewColorWhiteController
    let newArrayOfVCs = [viewColorRedVC, viewColorBlueVC, viewColorWhiteVC]

    Nun der Letzte Schritt ist die änderung der tab-Leiste root-Ansicht-controller mit dem array von oben.

    //This method is what sets the Navigation Controller's new child views to be presented
    viewNumNavController.setViewControllers(newArrayOfVCs, animated: false)
    //This method is what sets the exact view controller you want use as the actual root vc (the very first scene the user will see)
    viewNumNavController.popToViewController(viewColorRedVC, animated: true)
    self.presentViewController(tabBarController, animated: true, completion: nil)

    Hoffe, das hilft!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.