Wie erstelle ich ein Popover in einem iPad Storyboard für eine iOS 5.0+ App?
Es gibt bereits ein Setup mit der Xcode-Projektvorlage (Utility-App), aber ich kann nicht herausfinden, wie Apple es zum Laufen gebracht hat. Ich habe versucht, es nachzuahmen, habe aber nur Fehler bekommen. Ich habe sogar auf Apples Dev Site nachgesehen, aber nur veralteten Code erhalten, der zu Warnungen und Buildfehlern führte.
Ich habe eine CBMainView
und eine CBMasterView
(mit Ausnahme der Master-Ansicht, die bereits enthalten ist) und eine UIToolbar
mit einer UIToolbarButton
. Ich möchte, dass der Benutzer auf die Schaltfläche für die UIToolbar
tippt. Dann erscheint mein 320x300-Popover (CBMasterView
).
Wie kann ich das mit Xcode Storyboards machen? Tutorials, Antworten, Code oder Links sind willkommen!
Vor iOS 5 hätte man mit dem First Responder ein anderes UIViewController
über eine Modal-Präsentation (und einen Stapel Code) anzeigen müssen.
Um ein Popover im Storyboard-Modus von Xcode (iOS 5+) zu erstellen, verwenden Sie UIButton
oder UIToolbarButton
und erstellen Sie eine Storyboard-Überblendung zwischen der Schaltfläche und dem UIViewController
, das Sie Popover.
Das Erstellen einer Trennlinie zwischen einer Schaltfläche und einem anderen UIViewController
ist einfach. Hier ist wie:
UIViewController
Ihrer Wahl. Sie sollten eine hellblaue Linie sehen, die sich von der Schaltfläche bis zur Spitze Ihrer Maus erstreckt.Nachdem Sie die blaue Linie auf den ViewController Ihrer Wahl gezogen haben, erscheint ein kleines schwarzes Menü. In diesem Menü werden die verschiedenen Segue-Optionen angezeigt. Wählen Sie Popover
.
Wenn alles richtig gemacht wurde, sollte diese Leiste im Verbindungsinspektor sichtbar sein, wenn die Schaltfläche ausgewählt ist:
Die von Ihnen erstellte UIViewController
sollte auch eine benutzerdefinierte Größe haben, die kleiner als der Vollbildmodus ist. Sie können eine benutzerdefinierte Größe festlegen, indem Sie den View Controller auswählen und dessen Größeseigenschaft auf freeform
oder master
(320 x 850) festlegen.
Ich bin auch auf der Suche nach der Antwort auf dieses Problem. Ich habe es mit NSNotification gelöst.
Hier ist wie:
Der View Controller, der das Popup anzeigt, sollte sich registrieren, um die Benachrichtigung zu erhalten:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(languageSetup) name:SPVWChangeLanguage object:nil];
languageSetup
ist die Funktion, die aufgerufen wird. SPVWChangeLanguage
ist eine Zeichenfolge, die Sie in Ihrem Popup-Ansichtscontroller definieren
Ich habe diese Zeile in viewDidAppear
hinzugefügt
Fügen Sie nun in Ihrem Popup-Ansichtscontroller diese Zeile hinzu, wenn der Benutzer etwas in der Tabelle auswählt:
[[NSNotificationCenter defaultCenter] postNotification: [NSNotification notificationWithName: SPVWChangeLanguage object:self]];
bevor Sie das Popup schließen:
[self.popOverController dismissPopoverAnimated:YES];
Das ist alles. Der Selector languageSetup (in meinem Fall) wird aufgerufen. Stellen Sie sicher, dass Sie die Benachrichtigung entfernen, wenn Ihr View Controller nicht mehr funktioniert:
[[NSNotificationCenter defaultCenter] removeObserver:self];
Ich mache es in viewWillDisappear
Ich denke, es muss einen einfacheren Weg geben. Aber zumindest funktioniert dieser für mich.
Wenn du Storyboard mit IOS8 verwendest, sieh dir diesen Beitrag an und beantworte ihn für mich!
Wie ein Modal über der aktuellen Ansicht in Swift zu präsentieren
Kurz gesagt: Sie erstellen eine separate Popup-Ansicht, geben dem Hintergrund eine Farbe mit geringer (oder keiner) Deckkraft und stellen eine modale Verbindung zwischen Ihrer Hauptansicht und der Popup-Ansicht her.
Klicken Sie dann im Storyboard auf den Bereich und dann im Attributinspektor auf: Ändern Sie die Darstellung in "Über den aktuellen Kontext" (und wechseln Sie möglicherweise in die Überblendung, wenn Sie eine Deckkraft von mehr als 0 verwenden).
Der einfachste Weg, den ich je gesehen habe!