So verwenden Sie einen UISplitViewController in Swift

8

Also füge ich ein UISplitViewController zu einem Projekt hinzu, das mit einem UITabBarController eingebettet ist.

Das UISplitViewController hat ein UINavigationController als Master & amp; Detailbeziehung mit ihrem eigenen Root-Controller.

Der Master UINavigationController rootController hat einen Detail-Übergang zum Detail UINavigationController .

Siehe hier:

Alles ziemlich einfach oder? Jetzt mache ich im TableViewController folgendes;

%Vor%

Ich habe auch eine UISplitViewController Erweiterung und mache folgendes:

%Vor%

Bei all dem habe ich folgende Probleme:

  • Wenn Sie auf tableviewcell tippen, um in die Detailansicht zu wechseln, wird die Detailansicht im linken Hauptfenster geöffnet, wenn Sie auf dem iPad im Querformat und nicht im rechten Feld angezeigt werden. Ich kann auch nicht herausfinden, wie man die Master-Ansicht als erste Ansicht im Portrait auf dem iPad oder auf dem iPhone zeigt. Diese beiden Probleme können miteinander in Verbindung stehen oder nicht. Ich bin mir nicht sicher.

  • Auf Mobilgeräten gibt es eine untere Leiste über der Tableiste, über die ich nicht herausfinden kann, wie ich sie entfernen kann. Ich hatte das gleiche Problem auf dem iPad, bis ich den Code in den UISplitViewController Erweiterungen viewDidLoad hinzugefügt habe, aber das hat das Handy nicht beeinflusst. Siehe hier,

PS: Ich bin mir nicht sicher, ob die Frage zu lang ist, ich hielt es für das Beste, alles in einen Zusammenhang zu stellen. Auch habe ich viel Forschung gemacht, aber ich kann keine Ressourcen in swift finden, die einen UITabBarController verwenden.

Ich habe das folgende Tutorial Ссылка

verfolgt     
A.Roe 27.03.2016, 19:52
quelle

2 Antworten

1

Sie sind so nah dran, machen Sie folgendes.

Behalten Sie das geteilte Ansichtslayout mit Detailsegmenten und geben Sie für die folgende Methode "true" zurück und entfernen Sie den Rest des Codes, der mit der Variablen collapseDetailViewController zu tun hat.

%Vor%

Setzen Sie Folgendes in Ihren Master View Controller

%Vor%

Fügen Sie self.extendedLayoutIncludesOpaqueBars = true zu Ihrem Detailansicht-Controller hinzu, wie in der vorherigen Antwort erwähnt. Das sollte die Leiste entfernen, die auf Ihren Ansichtscontrollern angezeigt wird.

Wenn Sie zusätzliche Funktionen wünschen, fügen Sie Folgendes hinzu, wenn Sie möchten, dass Ihre Detailansicht den gesamten Bildschirm auf dem iPad verwendet.

%Vor%     
RileyDev 27.03.2016, 22:39
quelle
2

Damit der Master des SplitViewControllers sichtbar ist, müssen Sie ihn in ViewDidLoad von splitViewController hinzufügen. Sonst ist der Master-View-Controller als ein Seitenmenü vorhanden, das Sie im Portrait-Modus ziehen können

%Vor%

Aber diese Hauptdetailansicht ist nur in iphone 6 plus und ipad sichtbar, ansonsten wird sie wie ein Navigationscontroller funktionieren. Um den ViewController auf den Navigationscontroller zu schieben, versuchen Sie, einen Navigationscontroller auf einen anderen Navigationscontroller zu schieben. Ich denke nicht, dass es empfohlen wird. Bewegen Sie einfach den Übergang vom ersten View-Controller (wo Sie Text eingeben) zum zweiten (Color-View-Controller) anstelle des zweiten Navigations-Controllers. Wenn Sie die Details im rechten Bereich für ipad und iphone6 ​​und als neue Seite für andere Geräte anzeigen möchten, sollten Sie diesen Weg nicht verwenden, den Push-Abschnitt entfernen und einen Delegaten verwenden, um Informationen zu übergeben, die geändert und aktualisiert werden UI.

Ich denke auch nicht, dass Sie vielleicht einen navigationController als Detailseite benötigen, nur die Farben viewController reichen vielleicht aus, wenn Sie nicht an weiterer Navigation von der Detailseite interessiert sind.

Ausführliche Informationen zum Verhalten des Split-View-Controllers in iPhone und iPad finden Sie in Ссылка

Fügen Sie self.extendedLayoutIncludesOpaqueBars = true zu der Ansicht "ViewDidLoad" der navigationController für das Lückenproblem

hinzu     
shinoys222 27.03.2016 20:38
quelle