Menu unterhalb Navigation Bar

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Menu unterhalb Navigation Bar

    Seit längerer Zeit kämpfe ich mit der "Montage" eines Slide-Menus welches zwischen Navigation Bar und Table-View erscheinen soll.

    Dieses Menu besteht aus Haupt-und Untermenu und funktioniert ähnlich einem Tab-Bar. Jedem Untermenu-Punkt ist ein eigener Navigationscontroller zugeordnet.
    • Menupunkt A
      • Untermenupunkt A1 -> NavigationController -> TableViewController -> ViewController
      • Untermenupunkt A2 -> NavigationController -> ViewController -> ViewController ->
      • ....

    • Menupunkt B
      • Untermenupunkt B1 -> NavigationController -> ....
      • Untermenupunkt B2
      • ...


      osxentwicklerforum.de/index.ph…22aa3bc83da71f7996ca6bc7e

      Gibt es eine gute Lösung, die View des Slide-Menu anzuhängen, so dass die Rotation mit gemacht wird, und die View-Controller/ TableView-Controller erkennen, dass sie um die Höhe des Menus, kleiner werden müssen?
      Hänge ich das Menu direkt am Main-Window an, müsste die Rotation vermutlich selbst programmiert werden, und ich weiss nicht wie ich den View-Controllern klar machen soll, dass sie weniger Platz bekommen.
      Hänge ich das Menu jeweils nach Auswahl eines anderen Navigationscontrollers mit seinem Rootview diesem an, wird es schwierig bei Table-Views. Damit das Menu nicht nach oben weg scrollt, könnte ich es dem TableHeader zu weisen, was ich nicht ganz logisch finde.
      Vielleicht müsste ich es dem NavigationController anhängen. Dann müsste es aber auch nach links weg scrollen wenn eine neue Ansicht dargestellt wird.
      Eigentlich ist das Menu ähnlich einem Tabbar-Controller. (Jeder Menu-Punkt hat seinen eigenen Navigationscontroller). Aber auch da bin ich nicht weiter gekommen.

      Hört sich langweilig oder verwirrt an. Ich hoffe, es erkennt vielleicht jemand das Problem, und kann mir eine Richtung aufzeigen.

      Gruss, Oliver
  • Ich verwende aus diesem Grund keinen UITAbleViewController mehr.

    Wenn man da nachträglich doch noch eine weitere View mit reinbasteln will, so dass die TableView kleiner werden muss, hat man ein Problem.

    - Verwende einen UIViewController
    - Setze in die View eine Tableview
    - Platziere darüber eine andere View
    - Setzte das Autosizing richtig.
    - Erstelle ein IBOutlet "tableView" im ViewController
    - Mache ihn zum TableView Delegate und Datasource

    Das Ding verhält sich wie dein UITableViewController wenn du der zweiten Subview eine Höhe von 0 Points zuweist, und der Tableview das komplette Frame.
    Bei Bedarf kannst du aber eben die Views von der Größe ändern / animieren, was der TableViewController einem zunichte macht (solang man nicht fies anfängt setFrame und layoutSubViews zu überschreiben).
  • Danke. Super Idee. Werde ich gleich ausprobieren.

    Hatte sonnst noch ausprobiert:
    Das Menu dem NavigationController View anzuhängen
    [structureElement.navigationController.view addSubview:menuView];

    und dann beim TableViewController bei viewDidAppear
    das self.tableView.frame zu ändern, so dass oben Platz für MenuView bleibt.
    Dabei bleibt dass Problem, dass wenn dann bei der TableView mit Push ein nächster View-Controller auf den NavigationController gelegt wird, das Menu nicht automatisch nach links raus geschoben wird.