Popovers können nicht aus einer Ansicht dargestellt werden, die kein Fenster enthält
Was bedeutet diese Fehlermeldung deuten:
"Popovers nicht dargestellt werden können aus einer Sicht, die nicht über ein Fenster."
Kommentar zu dem Problem
Dieser Fehler ist auch aufgetreten, wenn es passiert null zu optionsButton in [optionsPopoverController presentPopoverFromBarButtonItem:optionsButton permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
InformationsquelleAutor der Frage a111 | 2010-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
den Ausblick, den Sie sind das hinzufügen der popover zu bereits Hinzugefügt wurden, um ein Fenster mit der "addSubview:" Methode.
Versuchen zu warten, bis
heißt für die Ansicht, und dann laden Sie das popover
InformationsquelleAutor der Antwort hey68you
die Sache, die mein Leben gerettet:
durch hinzufügen der Bedingung " wenn es keinen crash mehr. Ich nicht wirklich bekommen, weil die
presentPopoverFromRect
Funktion wird IMMER aufgerufen wird. Es gibt keine situation, wo das Fenster wäre null, aber trotzdem es hat den trick.edit: ich habe diesen code in
viewDidAppear
.Dennoch in den meisten Fällen ist es ausreichend zu bewegen
presentPopoverFromRect
zuviewDidAppear
oderdidMoveToWindow
aber in meinem Fall aus irgendeinem Grund die if-Bedingung notwendig war.InformationsquelleAutor der Antwort Maciek z Wrocławia
Ich habe dieses problem.
Hatte ich eine
UITabBarController
als der detail Ansicht, und ich habe die barButtonItem als leftBarButtonItem auf allen drei Navigations-Controller in der tab-Leiste.Stellt sich heraus, nur die letzten hinzugefügten gültig ist, und die vorherigen beiden werfen würde die exception beim Tippen auf.
Um es zu beheben, ich nur die leftBarButtonItem für die sichtbare view-controller, und schalten nur die barButtonItem auf die sichtbare view-controller jedes mal, wenn der Benutzer gewechselt tabs.
InformationsquelleAutor der Antwort Lewis Anderson
Einfach auf dieses Thema. Stellte sich heraus, dass die inView: parameter wurde mit einem IBOutlet, dass war nicht angeschlossen bei der IB. So ein Versuch wurde gemacht, um starten Sie das popover in der null. Das funktioniert aber nicht.
Also, stellen Sie sicher, dass Sie eine gültige Ansicht.
InformationsquelleAutor der Antwort
Gibt es viele Möglichkeiten, um zu diesem Fehler. Im Grunde müssen Sie warten, rufen Sie die
presentPopover
Befehl, bis Sie Ihre Berufung ansehen wird einem Fenster Hinzugefügt. Ich habe es auf diese Weise.Meine
presentPopoverFromRect
Anruf ist in meinemmethodThatDisplaysPopOver
Funktion.Könnten Sie schützen jeden presentPopover nennen wie MobiMaciek schlägt vor, mit dieser.
Aber ich denke, es wäre besser, zu verstehen als sich selbst.Blick.Fenster zugewiesen bekommt und stellen Sie sicher, dass Sie Ihnen popover, nachdem die Ansicht hat ein Fenster.
InformationsquelleAutor der Antwort Joshua Dance
Erhielt ich die gleiche Fehlermeldung bei der Zuweisung der gleichen
UIBarButtonItem
mehrere navigation items wie Lewis. Mein Beispiel war etwas komplizierter, da ich einenUISplitViewController
.In meinem
RootViewController
ich habe ein array von arrays zu erreichen, mehrere Abschnitte, die in meiner Tabelle. Jedes mal, wenn der Benutzer klickt auf eine Zeile in der Tabelle, wird eine neue "detail" - Ansicht-controller platziert im rechten Fensterbereich des meine splitViewController. Vor der Festlegung derleftBarButtonItem = nil
würde ich erhalten einen segfault nach 3-4 Klicks auf der "Menü" - button, mit dem gleichen Fehler wie die a111. Ich aktualisierte mein code, um tatsächlich abrufen der vorherigen detail view controller und legen Sie die leftBarButtonItem Element auf nil.allData
ist mein NSMutableArray mit mehreren anderen NSMutableArrays als Objekte.Die Fehlermeldung war leicht zu täuschen, aber auf den ersten der oben genannten Antworten mir geholfen. Ich Frage mich, warum ich könnte auf die "Menü" - Taste, bis auf 3-4 verschiedenen Zeiten vor dem segfault... ich werde das weiter untersuchen.
InformationsquelleAutor der Antwort TPoschel
Dieser Fehler auch aufgetreten, wenn die inView: Ungültiger Parameter - test-versuchen Sie selbst.Ansicht
InformationsquelleAutor der Antwort John Goodstadt
ja, du hast Recht, aber trotzdem können wir hinzufügen, Untersicht aus übergeordneten Klasse. so kann dargestellt werden, eine Ansicht, die ein Fenster:
InformationsquelleAutor der Antwort Steve
Hatte ich die gleiche Fehlermeldung wie der OP, in einer sehr ähnlichen situation berichtet, die durch TPoschel, außer ich hatte einen split-view-controller mit eingebettetem tab-bar-controller im detail-Fensterbereich und einen navigation-controller innerhalb dieser. Das bar button item wird Hinzugefügt, wie die navigation bar leftBarButtonItem.
Nur auf iOS5.0 (nicht 5.1) scheint es zu verlangen, dass Sie die Unwirksamkeit des bar-button-Element in der tab-Leiste, die Sie verlassen, indem Sie ihn auf null. Bevor dann die bar Taste auf der Navigationsleiste auf die Registerkarte, die Sie gehen werden.
Wenn ich das nicht tun, Debuggen von meinem eigenen code, der window-Eigenschaft des bar-button-item bleibt auf null, und die Ausnahme verursacht, auf Rückkehr zu einem Bildschirm, die Sie zuvor zu. Ich vermute, dass als ein Nebeneffekt der Einstellung der leftBarButtonItem in der navigation den Punkt, es geht ab und setzt den Rahmen. Aber es scheint nicht zu stören, es sei denn, der Knopf ist Verschieden von dem, was aktuell eingestellt ist. Daher die Notwendigkeit, setzen Sie ihn auf null, wenn eine Registerkarte verlassen, obwohl es technisch die gleiche Taste das ist, herumgereicht zu werden.
Ich würde upvote TPoschel Antwort, außer, SO wird nicht lassen Sie mich.
InformationsquelleAutor der Antwort Rob Glassey
Ich hatte ein problem wie dieses. Diese Nachricht erhalten wenn Sie eine angepasste
UIBarButton
Element, das aufgerufen wird, einen Selektor-Methode mit haben performSeque.Das problem war mein übergang war, der immer noch an der
UIBarButton
Element. Es sollte an die Haupt-Ansicht des view-Controllers. Dies geändert und funktionierte gut.P. S., das alles begann, weil ich wollte, zu fügen und "info" - Taste, um meine
UIToolBar
. Dies ist nicht eine im system zur Verfügung gestellten Liste und sollte.InformationsquelleAutor der Antwort caprijoe
Gibt es eine Ansicht, aus der Sie fragt, um Ihre popover.Der Grund für diesen Fehler ist, weil Sie nicht aus dieser Sicht als eine Untersicht des Fensters.
wo displayPopOverVC ist der view-controller, aus dem der popOver erscheint
InformationsquelleAutor der Antwort SumiSadiq
ich hatte das gleiche problem, nach dem hinzufügen PresentPopOver in viewDidAppear dies wurde gelöst
dies geschah, als inView:self.anzeigen sollte aufgerufen werden, nachdem viewDidLoad wie vorgeschlagen von @hey68You und MobiMaciek..
InformationsquelleAutor der Antwort iMeMyself
Ersetzte ich
mit
InformationsquelleAutor der Antwort Rose Perrone