2016-06-04 8 views
2

Ich bin eine schnelle App und ich gehe von einem UIViewController (mein Login-Bildschirm) zu einem UINavigationController mit einer Stammansicht (Hauptbildschirm nach Login). Das alles funktioniert großartig und alle notwendigen Daten werden an die Root-Ansicht übergeben. Mein Problem ist, dass, nachdem ich auf eine Zelle auf dem UITableViewController klicke, es mich zum nächsten UIViewController bringt, aber dort ist keine Navigationsleiste (so kann ich nicht zurückgehen).Leiten Sie zu UINavigationController, aber Kinder UIViewControllers nach rootViewController haben keine Navigationsleiste SWIFT

Ich habe auch versucht, die Navigationsleiste ohne Erfolg, ich glaube wirklich, es ist einfach nicht da.

Ich bin mir nicht sicher, ob diese Hinweise, was das Problem hier verursacht aber einige Warnungen ich im Debugger erhalten Warning messages

ist die Struktur meiner Storyboard My storyboard

hier ist mein Code von Login zum Hauptbildschirm gehen

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "segueToTeams" { 
     if let user = self.user{ 
      let navController = segue.destinationViewController as! UINavigationController 
      let welcomeView = navController.topViewController as! TeamsTableViewController 
      welcomeView.user = user 
     } 
    } 
} 
func goToTeamsView(storyBoard : UIStoryboard){ 

    let welcomeView = storyBoard.instantiateViewControllerWithIdentifier("teamsView") 

    let navigationController = UINavigationController(rootViewController: welcomeView) 
    super.performSegueWithIdentifier("segueToTeams", sender: self) 
    super.presentViewController(navigationController, animated: true, completion: nil) 
} 

Schließlich ist hier mein Code zu gehen fr om die Wurzel-View-Controller des UINavigationViewController (Select Ansicht Team im Storyboard Screenshot) zum nächsten (Einzel Team-View-Controller), die die Navigationsleiste haben soll aber nicht

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    performSegueWithIdentifier("selectTeamCellSegue", sender: indexPath.row) 

} 

Wenn Sie eine brauchen andere Infos, lass es mich wissen. Ich habe mit diesem Thema länger gerungen, als ich zugeben möchte, jede Hilfe/Beratung wird sehr geschätzt!

Antwort

1

Sie können Ihren View-Controller in einen Navigations-Controller einbetten, indem Sie Ihren View-Controller im Storyboard auswählen und dann "Bearbeiten" -> "Einbetten" -> "Navigations-Controller" wählen. Sie können dann BarButtonItems hinzufügen, um hin und her zu gehen. Ich nehme an, dass Sie einen modalen Übergang verwenden? Soweit ich weiß, sind Ihre View-Controller nicht automatisch in Ihren ursprünglichen Navigationscontroller eingebettet.

Hoffe, das hilft

+0

Sie sind völlig richtig, das ist, wie Sie einen View-Controller in einem Navigationscontroller einbetten würden. Ich denke, dass ich mein Problem herausgefunden habe, es sieht so aus, als würde ich ein "Zeige Details" statt eines "Show" Segments verwenden, es behielt die Navigationsleiste, die mit dem Nav Controller angezeigt wird .. noch ein paar Dinge zum Beispiel, warum es die nächste Ansicht zweimal aufruft. Aber ich denke, dieses Problem ist gelöst. Ich schätze deine Hilfe damit, ich werde es als die richtige Antwort akzeptieren :) –

Verwandte Themen