wake-up-neo.com

Wie füge ich eine Symbolleiste am unteren Rand eines UITableViewControllers in Storyboards hinzu?

In meinem UITableView, das ich mit Storyboards eingerichtet habe, muss ich in der Lage sein, eine Symbolleiste hinzuzufügen, die am unteren Rand der Ansicht bleibt. Sie sollte nicht scrollen.

Im Gegensatz zu dieser Frage: LINK Ich glaube nicht, dass ich einer normalen Ansicht eine TableView-Unteransicht hinzufügen und dann programmgesteuert eine Symbolleiste hinzufügen kann, da ich dynamische Zellen verwende die sich viel einfacher über Storyboards integrieren lassen.

Das ist es, womit ich im Moment festgefahren bin ... enter image description here

35
vzm

wenn Sie die Symbolleiste in einem Ansichts-Controller anzeigen möchten, der sich in einem Navigations-Controller befindet.

  1. wähle den View Controller im Storyboard
  2. zeigen Sie in den Dienstprogrammen "Attributinspektor" an. Wählen Sie den Stil "unterer Balken".
  3. hinzufügen eines Balkenschaltflächenelements
  4. fügen Sie Code in den View-Controller ein, um die Symbolleiste ein- und auszublenden:

code:

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:NO animated:YES];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:YES animated:YES];
}
76
Zoxaer

Sehr leicht. Klicken Sie einfach auf den Navigationscontroller. Klicken Sie dann im Inspektor "Attribute anzeigen" und dann im Navigations-Controller auf die Symbolleiste "Shows". Überprüfen Sie den Screenshot.

Show Toolbar Screen Shot

26
Kegham K.

Für Swift Benutzer können Sie den folgenden Code verwenden:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated);
    self.navigationController?.setToolbarHidden(false, animated: animated)
}

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated);
    self.navigationController?.setToolbarHidden(true, animated: animated)
}
16
Keith Holliday

Dieses Mittel funktioniert für (2016) iOS 9.2. Wir alle hassen es, wie Apple uns dazu bringt, Zeit mit Dingen zu verschwenden, die so einfach sein sollten. Ich mag schrittweise Lösungen für diese Art von albernen Problemen, also teile ich es mit Ihnen !:

  1. Wählen Sie Ihren View Controller> Attribute Inspector> Wählen Sie "Opaque Toolbar"
  2. Ziehen Sie nun ein "Balkenschaltflächenelement" auf Ihr Storyboard und legen Sie es dort ab.
  3. Wählen Sie Ihr neu abgelegtes Element für die Balkenschaltfläche> Atribute Inspector> Systemsymbol> Wählen Sie Ihr Lieblingssymbol aus.
  4. Fügen Sie in der viewDidLoad () -Methode Ihres View-Controllers diesen Code vor allem anderen hinzu:

    override func viewDidLoad(animated: Bool) {
        self.navigationController?.setToolbarHidden(false, animated: true)
    

    // der Rest des Codes}

  5. Sie möchten nicht, dass diese Symbolleiste an einer anderen Stelle angezeigt wird. Fügen Sie dies in Ihre Ansicht ein, um sie auszublenden, sobald das aktuelle Fenster geschlossen wird:

-

 override func viewWillDisappear(animated: Bool) {
                super.viewWillDisappear(animated);
                self.navigationController?.setToolbarHidden(true, animated: animated)

        }

Voila!

9
Josh
  1. Ziehen Sie einen UIViewController in das Storyboard
  2. Ziehen Sie eine UIToolbar auf den Inhalt des Storyboards.
  3. Ziehen Sie eine UITableView auf den Inhalt des Storyboards.
  4. Verknüpfen Sie den Delegaten und die Datenquelle der Tabellenansicht mit Ihrem Quellcode.

Obwohl Sie UITableViewController nicht als Verknüpfungsklasse verwenden können, können Sie es in Schritt 4 mit einem regulären UIViewController verknüpfen.

In der Kopfzeile benötigen Sie jedoch etwas Ähnliches

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

In Ihrem Storyboard sieht es ungefähr so ​​aus:

enter image description here

5
David Wong

Ich habe einen Zwischen-View-Controller mit einer Container-Ansicht für die Tabelle verwendet. Fügen Sie die Symbolleistenansicht dem Intermediate hinzu und lassen Sie es so aussehen, wie Sie möchten (verwenden Sie UIButtons anstelle von UIBarButtonItem).

Wenn Sie dies tun, strecken Sie die Containeransicht bis zum oberen Rand des Bildschirms und nicht bis zum unteren Rand der Navigationsleiste. Andernfalls werden Sie sich die Haare aus dem Kopf ziehen und versuchen, die Bildlaufleisten richtig einzustellen.

Einige weitere Details in einer ähnlichen Frage https://stackoverflow.com/a/31878998/1042111

1
Brian Broom