presentingViewController erhält immer UITabBarController

8

Ich füge nur TabBarController + NavigationController hinzu. Vorher war alles in Ordnung, aber jetzt, wenn ich presentViewController von einem Modal aufrufen, bekomme ich diesen Fehler:

  

Beenden der App aufgrund einer nicht abgefangenen Ausnahme   'NSInvalidArgumentException', Grund: '- [UITabBarController   tableViewListado]: unerkannter Selektor, der an Instanz

gesendet wurde

Anstatt das erwartete Objekt (ViewController) zu erhalten, bekomme ich "UITabBarController", sollte ich den präsentierenden Controller auf eine andere Weise bekommen, wenn ich TabBar und Nav Controller verwende?

Ohne die TabBar / Nav benutzte ich das:

%Vor%

Bearbeiten:

Finde einfach heraus, dass, wenn ich das tue, es funktioniert, aber denke nicht, dass dies der beste Weg ist, es zu tun:

%Vor%     
dimirc 06.06.2012, 03:17
quelle

1 Antwort

3

Kopie meiner Antwort von diese Frage

von Programmierung von iOS 6, von Matt Neuburg :

  

Wenn auf dem iPad der modelPresentationStyle des View-Controllers UIModalPresentationCurrentContext ist, muss eine Entscheidung darüber getroffen werden, welcher View-Controller der presentingViewController des präsentierten View-Controllers sein soll. Dadurch wird festgelegt, welche Ansicht durch die Ansicht des View-Controllers ersetzt wird. Diese Entscheidung umfasst eine andere UIViewController-Eigenschaft, definesPresentationContext (a BOOL). Beginnend mit dem View-Controller, an den presentViewController: animated: completion: gesendet wurde, durchlaufen wir die Kette der übergeordneten View-Controller und suchen nach einem, dessen definePresentationContext-Eigenschaft YES ist. Wenn wir einen finden, ist das der eine; es wird der presentingViewController sein, und seine Ansicht wird durch die Ansicht des Viewcontrollers ersetzt. Wenn wir keinen finden, funktionieren die Dinge so, als wäre der modalPresentationStyle des View-Controllers UIModalPresentationFullScreen gewesen.

TL; DR
1. Setzen Sie definesPresentationContext auf True auf die gewünschte presentingViewController
2. Setzen Sie modalPresentationStyle auf UIModalPresentationCurrentContext auf die gewünschte presentedViewController

    
calql8edkos 03.10.2014 20:20
quelle

Tags und Links