UISplitViewController-Hochformat fehlt UIBarButtonItem

8

Ich habe eine Anwendung mit einem UISplitViewController, wenn ich die App im Potrait-Modus starte, fehlt das "Group" UIBarButtonItem. Ich muss in den Landscape-Modus und zurück zu potrait um es erscheinen zu lassen. Wenn ich es im Querformat starte, ist es da. Hier ist ein Screenshot, um es deutlich zu machen:

Dies ist, wenn die Anwendung im Hochformat gestartet wird

Dies ist im Querformat, nachdem Sie es aus dem Hochformat gedreht haben:

Dies ist nach dem Zurückdrehen in den Hochformat-Modus aus dem Querformat-Modus:

    
adit 27.05.2011, 02:38
quelle

2 Antworten

4

Das gleiche ist mir vor ein paar Tagen passiert. Sie müssen nur sicherstellen, dass die Detailansicht Delegat der SplitView ist. Wenn Sie versuchen, den Delegaten in der Detailansicht viewDidLoad zu setzen, wird er erst nach dem Laden der splitView (mit dem root tableView-Controller) gesetzt. Deshalb wird es erst platziert, wenn Sie in die Landschaft und zurück wechseln. Der Delegat wird am besten in Ihrer Anwendungsdelegatenimplementierungsdatei (beim Erstellen des UISplitViewController, was die beste Idee wäre) oder im StammtabellenView-Controller mit etwas wie

festgelegt %Vor%

Damit wird die Detailansicht delegiert. Wenn sie also geladen wird, nachdem der TableView-Controller geladen wurde, ruft sie Ihre Methode splitViewController:willHideViewController:... auf.

Natürlich ist das nicht die Situation, die Sie haben. Ich nehme nur an, dass, da ich genau das gleiche Verhalten hatte, es wahrscheinlich die gleiche Ursache ist. Wenn das nicht hilft, sag es einfach und wir kommen zur Ursache

    
justin 27.05.2011, 04:28
quelle
0

Ich konnte dieses Problem auch nicht herausfinden, da meine Code- und IB-Verbindungen identisch mit denen waren, die Apples Beispielcode für mehrere Detailansichten hatte.

Ich konnte es richtig funktionieren lassen, indem ich den Verweis von self.splitViewController (eine Eigenschaft der Klasse des linken Ansichtscontrollers) in der zweiten bis letzten Zeile auf svc <änderte / strong> automatisch an die Methode übergeben. Ich hatte im Debugger festgestellt, dass der erste noch aus irgendeinem Grund nicht instanziiert wurde. (Speicherort war 0x00000000).

%Vor%

}

    
avance 03.10.2012 19:47
quelle