Frage

Ich folge der Coredatarecipes -App für Modaly, die den Bildschirm hinzufügen, wenn ich ein neues Element hinzufügen möchte. Ich kann die Balken jedoch nicht oben anzeigen lassen, damit ich "Fertig" oder "Abbrechen" drücken kann.

Im XIB -Aufruf des Modal Controllers habe ich die + Taste verknüpft, um den Controller über IB modell zu schieben.

Ich habe das unten in meinem Modal Controller

self.navigationItem.title = @"Add";

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(save)];
    self.navigationController.navigationBarHidden = NO;

In meiner Ansicht

Der Modal Controller zeigt eine gute Zulassung an, außer dass es keine Balken gibt, sodass ich diesen Bildschirm nicht verlassen kann.

War es hilfreich?

Lösung

Sie müssen es hinzufügen, bevor der Popover tatsächlich präsentiert wird.

Wo Sie den modalen Popover erstellen, müssen Sie ihn zuerst in einem UinAvigationController erstellen.

Machen Sie also Folgendes.

 PopoverView *foo = [[PopoverView alloc] initWithNibName:@"PopoverView" bundle:nil];
 // Here you pass through properties if you need too.
 // ...
 UINavigationController *navC = [[UINavigationController alloc] initWithRootView:foo];
 [foo release];

 [self.navigationController presentModalViewController:navC animated:YES];

Dadurch wird die modale Ansicht die Navigationsleiste vermittelt, die Sie bearbeiten möchten.

Andere Tipps

Alternative, Sie könnten Ihren Storyboard -Segue beibehalten. Wählen Sie in XCode den Ansichtsregler aus, den Sie zu einem Navigationscontroller wechseln möchten.

Fügen Sie nun in der ViewDIDLOAD dieses Ansichtscontrollers hinzu:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];

Und schließlich der Rückruf:

- (void)cancel {
    [self dismissModalViewControllerAnimated:YES];
}

Oder wenn Sie nur das Aussehen der Leiste und nicht genau der Funktionalität benötigen, können Sie die Navigationsleiste (UinavigationBar) oder die Symbolleiste (Uitoolbar) aus dem Medienbibliotheksfeld in Ihre Ansicht ziehen und von dort aus gehen.

Ich hatte eine ähnliche Situation, bei der ich einen UitableViewController in einem Contenterview geladen habe. Der Contenterview befand sich in einem UiviewController, der modal präsentiert wurde.

Ich brauchte wie Sie die Navigationsleiste, um einen Titel und einen Fertig/Abbrechen -Taste zu haben.

Nachdem ich den Stapel überfüllt hatte, tat ich das endlich -

Ziehen Sie ein UIView als erstes Element in der Tabellenansicht im IB. Dies nahm automatisch eine Höhe von 44 Punkte und schnappte nach oben. Es hat auch meinen ersten Abschnitt nach unten verschoben.

Ich habe eine Uibutton (Done -Taste) in diese Ansicht gezogen. Erstellte ein Iboutlet und rief an

    [self dismissViewControllerAnimated:YES completion:nil];

Haftungsausschluss:

1) Diese gefälschte Navigation scrollt zusammen mit dem Tischansicht. 2) Dies ist möglicherweise keine Lösung für das, was Bot gefragt hat, aber es ist eine Option für andere, die möglicherweise nach etwas Ähnlichem suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top