1

Ich kann nicht erklären, warum dieser Code nicht funktioniert. Aus irgendeinem Grund ist die Navigationsleiste durchscheinend und der Inhalt der tableView scrollt darüber.Navigationsleiste wird nicht über TableView angezeigt

hier ist der Code des Button

let outlineViewController = OutlineTableviewController() 
     outlineViewController.pdfOutlineRoot = pdfoutline 
     outlineViewController.delegate = self 

     let nav = UINavigationController(rootViewController: outlineViewController) 
     self.present(nav, animated: true, completion:nil) 

hier ist der Code der Tableview

super.viewDidLoad() 

    let newBackButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(dismissView)) 

    self.navigationItem.rightBarButtonItem = newBackButton 

    navigationController?.navigationBar.backgroundColor = UIColor(red:0.00, green:0.51, blue:0.78, alpha:1.0) 


    self.tableView.dataSource = self 
    self.tableView.delegate = self 

    tableView?.register(UINib(nibName: "OutlineTableViewCell", bundle: nil), 
         forCellReuseIdentifier: "OutlineTableViewCell") 
} 

und hier ist das Ergebnis: die Hintergrundfarbe nicht angezeigt wird und der Tisch geht unter die Navigationsleiste.

Was fehlt mir?

enter image description here

+1

Ich habe versucht, den Code und es funktioniert gut. Ich denke, das Problem ist an einem anderen Ort. Haben Sie den Hintergrund der Navigationsleiste irgendwo anders eingestellt? – trungduc

Antwort

0

Vielen Dank für Ihre Antwort trungduc.

Nachdem ich stundenlang versucht hatte herauszufinden, was das Problem war, konnte ich dieses Problem endlich beheben, indem ich die Farbe in der Stammansicht änderte.

 let nav = UINavigationController(rootViewController: oulineViewController) 
     nav.navigationBar.backgroundColor = UIColor(red:0.00, green:0.51, blue:0.78, alpha:1.0) 
     self.present(nav, animated: true, completion:nil) 
0

Sie erwähnten das magische Wort in Ihrer Frage: "durchscheinend."

Ich hatte das gleiche Problem: Die Navigationsleiste wurde in der Stammansicht im Storyboard angezeigt, aber beim Ausführen des Simulators - es gab keine Navigationsleiste am oberen Rand der Ansichten. Dies löste es:

Navigation Controller> Navigationsleiste> UNCHECK Translucent (es ist standardmäßig aktiviert). Dies hat zwei Dinge bewirkt:

  1. Meine Navigationsleiste wird in allen folgenden Ansichten angezeigt.
  2. Die oberste Unteransicht (eine Tabellenansicht in Ihrem Fall) ist jetzt bei Y = 0 und nicht bei Y = 64.

enter image description here

+0

Bitte nicht die gleiche Antwort mehrmals posten. Poste es * einmal * auf eine gute Frage, dann * markiere die anderen Fragen als "Duplikate" *. Vielen Dank. – Moritz

Verwandte Themen