2016-09-20 4 views
0

Ich habe einen NavigationController in meinem TableViewController integriert. Wenn ich die App starte, funktioniert alles einwandfrei, aber die Navigationsleiste wird nicht angezeigt. DieseNavigationsleiste wird nicht auf dem eingebetteten TableViewController angezeigt - Swift

ist, wie mein Code aussieht:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    let box = boxes[indexPath.row] 
    print(box.name) 



    if let storyboard = self.storyboard { 
     let viewController = storyboard.instantiateViewController(withIdentifier: "BoxDescriptionTVC") as! BoxDescriptionTableViewController 
     self.present(viewController, animated: false, completion: nil) 
     viewController.boxDetailsLabel.text = box.boxDescription 
     if let boxImageURL = box.boxImageURL { 
      viewController.boxImageView.loadImageUsingCacheWithUrlString(urlString: boxImageURL) 
     } 
    } 
} 

Wie erstelle ich eine Instanz meiner Navigation es statt des Tableviewcontroller zu präsentieren?

+0

Sie eine Instanz Ihrer Navigationscontroller erstellen sollte und präsentieren sie statt BoxDescriptionTVC. –

+0

Wie erstelle ich eine Instanz meines NavigationControllers, um es anstelle des TableViewControllers zu präsentieren? – cosmos

Antwort

1

Zuerst können Sie storyboardID für NavigationController in Ihrem Storyboard festlegen. Dann können Sie Code wie folgt schreiben. (Ich gehe davon aus, dass Ihr Viewcontrollers in „Main“ Storyboard befinden und Sie können storyboardID im Identity Inspektor festgelegt werden)

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let boxDescriptionNavVC = storyboard.instantiateViewControllerWithIdentifier(BoxDescriptionNavID) as! UINavigationController 
let destinationTableViewVC = boxDescriptionNavVC.topViewController as! YourTableViewVC 
destinationTableViewVC.textVariable = box.boxDescription 
presentViewController(boxDescriptionNavVC, animated: true, completion: nil) 
+0

hat dies von der Konsole erhalten: Schwerwiegender Fehler: unerwartet wurde beim Entpacken ein optionaler Wert nil gefunden. Es wurde in dieser Zeile ausgelöst: viewController.boxDetailsLabel.text = box.boxDescription – cosmos

+0

Wie lautet die Storyboard-ID Ihres eingebetteten Navigationssteuergeräts? Hast du die exakt gleiche ID in die Funktion instantiateViewControllerWithIdentifier gestellt? – woogii

+0

Ich stelle dies: "BoxDescriptionNavID" – cosmos

Verwandte Themen