Ist es möglich, einen Popover-Befehl manuell auszuführen (aus der dynamischen UITableView-Zelle)?
Ich ausführen muss, um ein Popover segue, wenn der Benutzer berührt eine Zelle in eine dynamische TableView. Aber wenn ich versuche das mit diesem code:
- (void)tableView:(UITableView *)tableview didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"toThePopover" sender:[tableView cellForRowAtIndexPath]];
//...
}
als bekomme ich eine Fehlermeldung:
Illegale Konfiguration
Popover segue mit keine Anker
Gibt es eine Möglichkeit, dies zu tun (durchführen eines popover Wechsel von dynamische TableView manuell)?
InformationsquelleAutor der Frage Hlib Dmytriiev | 2012-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich konfrontiert mit diesem Thema heute Abend, gibt es ein paar workarounds (einschließlich Präsentation der popover, die altmodische Art und Weise).
Für dieses Beispiel habe ich ein Objekt, das gespeichert ist in meinem benutzerdefinierter Zellen-Klasse. Wenn die Zelle ausgewählt ist, rufe ich eine Funktion wie diese, um die details in popOverViewController über das Objekt, und Punkt (Anker), auf die entsprechende Zelle in der Tabelle.
Das problem mit dieser Methode ist, dass wir oft müssen die popover anzeigen, um eine benutzerdefinierte Initialisierung. Dies ist dann problematisch, wenn Sie möchten, dass Ihre anzeigen zu gestalten storyboard statt einer xib und haben ein benutzerdefiniertes init-Methode, die Ihren Zellen zugehörige Objekt als parameter zu verwenden, für die Anzeige. Man kann auch nicht einfach ein popover segue (auf den ersten Blick) da braucht man eine dynamische Anker-Punkt (und man kann nicht verankern an eine Zelle-Prototyp). So, hier ist was ich getan habe:
Nun haben Sie ein popover segue mit einem 'legal' zu verankern. Die Schaltfläche ist ausgeblendet, so kann niemand es versehentlich berühren. Sie sind nur mit dieser für ein Anker-Punkt.
Nun rufen Sie Ihren segue manuell in Ihrer Funktion wie diese.
Und...... Voila. Jetzt sind Sie mit der Magie leitet über mit all Ihrer Größe und Sie haben eine dynamische Anker-Punkt, die angezeigt wird, um zu Ihrer Zelle.
jetzt in
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
können Sie einfach werfen die Absender zu Ihrer Zelle s-Klasse (gegeben, dass Sie die ordnungsgemäßen Kontrollen der Absender-Typ und die segue aufgerufen wird) und bieten die segue ' s destinationViewController der Zelle-Objekt.Lassen Sie mich wissen, ob das hilft, oder hat noch jemand feedback oder Verbesserungen.
InformationsquelleAutor der Antwort johnrechd
Nur hinzufügen, dass diese Antwort als ein alternativer Weg, um eine popover aus einer Zelle berührt, aber es wird code verwendet, der eher als ein segue. Es ist ziemlich einfach, obwohl, und hat für mich von iOS 4 bis iOS 7:
InformationsquelleAutor der Antwort James Toomey
Rasche Antwort mit popoverPresentationController: Mit storyboard, die neue view-controller mit einem Storyboard ID popoverEdit.
InformationsquelleAutor der Antwort Drewster
Ich gemacht habe, dieses auf die einfachste Weise:
dann in der Tabellenansicht Zelle Tastendruck machen:
vorzubereiten und umzusetzen(segue) - Methode
InformationsquelleAutor der Antwort Michał Ziobro