2015-08-05 11 views
5

Ich habe root Storyboard, das eine Schaltfläche hat, die ViewControllerB schiebt.Warum: "Versuch zu laden .. während Freigabe aufheben ...: UISearchController:"

ViewControllerB hat eine Sortiersteuerung UISortController.

ViewControllerB hat eine "Zurück" -Methode, die vom Root-Nav-Controller gesteuert wird.

Ich erhalte die folgende Warnung:

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ff10258ba60>)

I verwendet Apple's sample (Mitgliedschaft erforderlich), um die neuen UISearchController hinzuzufügen.

Ist jemand auf dieses gestoßen? Wie löse ich es?

Antwort

1

Ich würde stattdessen mit Storyboard Unwind Segues empfehlen: https://developer.apple.com/library/ios/technotes/tn2298/_index.html

Diese interessante Post auch eine Fülle von sehr nützlichen Implementierung Detail hat:

What are Unwind segues for and how do you use them?

+0

Gute Idee. Vielen Dank. Ich werde es jetzt versuchen. –

+0

Ich bin mir nicht sicher, wie das zu implementieren ist. Die Zurück-Funktion wird tatsächlich vom Haupt-VC-Navigationscontroller gesteuert. Soll ich das einfach mit meinem eigenen Button überschreiben? –

+0

Bitte beachten Sie, ich habe meine Frage aktualisiert, so dass es genauer ist. –

1

ich über die gleiche Konsole Fehlermeldung gekommen Beachten Sie jedoch folgendes in Bezug auf mein Xcode-Projekt:

  • Übergänge zu Navigationssteuerungen müssen beibehalten werden aufgrund ihrer Verwendung mit einem Split View Controller (zum Detail View Controller);
  • (und nach @ AndrewEbling Kommentare oben) der Code erfordert keine Abwicklungssegmente, wie der Navigation Controller verwaltet (ein Teil der) Aufgaben automatisch;
  • Außerdem erfordert der Code keine Abwicklungssegmente, da Blöcke zum Festlegen von Eigenschaften im übergeordneten Ansichtscontroller verwendet werden.

Dank Kommentare von Leehro und Clafou in this SO answer die Konsole Fehlermeldung, indem Sie folgende Codezeile in viewDidLoad unterdrückt wurde (beachten Sie, dass es keine Notwendigkeit, dies in dealloc einzufügen):

[self.searchController loadViewIfNeeded]; (Anmerkung verfügbar von iOS 9).