Więc dodaję UISplitViewController
do projektu, który jest osadzony w UITabBarController
.Jak używać UISplitViewController w Swift
Model UISplitViewController
ma UINavigationController
jako związek szczegółowy z własnym kontrolerem głównym.
Urządzenie Master UINavigationController
rootController
ma szczegółową zmianę detalu UINavigationController
.
Zobacz tutaj:
wszystko dość proste, prawda? Teraz w TableViewController robię co następuje;
class TableViewController: TableViewController, UISplitViewControllerDelegate {
var collapseDetailViewController: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
splitViewController?.delegate = self
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
collapseDetailViewController = false
}
// MARK: - UISplitViewControllerDelegate
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return false
}
Mam również rozszerzenie UISplitViewController i wykonaj następujące czynności;
extension UISplitViewController: UISplitViewControllerDelegate {
public override func viewDidLoad() {
self.extendedLayoutIncludesOpaqueBars = true
}
}
Po tym wszystkim otrzymuję następujące problemy;
Kiedy dotykając
tableviewcell
do segue o szczegóły wyświetlić widok szczegółów otwiera w panelu głównego w lewo, gdy na iPadzie w krajobrazie, a nie prawo. Ja też nie mogę dowiedzieć się, jak pokazać Master View jako pierwszy widok, kiedy w portret na iPadzie lub na iPhone. Te dwa problemy mogą, ale nie muszą być powiązane, nie jestem pewien.Na Mobile nie jest dolny pasek powyżej paska kart, że nie mogę dowiedzieć się, jak usunąć. Miałem ten sam problem na iPadzie aż dodałem kod w rozszerzeniach
UISplitViewController
viewDidLoad
jednak, że nie skutkiem jest mobilne. Zobacz tutaj,
PS: Nie jestem pewien, czy pytanie jest zbyt długi, czułem, że najlepiej jest umieścić wszystko w kontekście. Również Robiłem wiele badań, ale nie mogę znaleźć żadnych zasobów w systemie SWIFT, które wykorzystują do UITabBarController.
zrobiłem wykonaj następujące samouczek http://nshipster.com/uisplitviewcontroller/
Więc zrobiłem wszystko, co powiedziałeś, nawet spojrzałem na samouczek raywenderlick (już to zrobiłem) i stworzył nowy projekt jako główny szczegół, aby zobaczyć, jak robi to jabłko. Wszystkie przykłady mają to, więc widok szczegółów jest pokazywany najpierw, potem wracasz do mistrza - co nie ma dla mnie sensu, np. Spójrz na ustawienia aplikacji wybierz kategorię najpierw nie ładuj ustawień ogólnych, potem wróć do kategorii. Widok szczegółów wciąż ładuje się w oknie głównym i ma teraz dwa dolne pręty :(jedynym kodem w głównej atm jest 'self.splitViewController? .preferredDisplayMode = .Automatic' –
, następnie nie pokazuj szczegółuViewController. Zrób to w masterViewController's 'didSelectRowAtIndexPath' .Co zrobiłem dla mojej aplikacji był 2 storyboard dla ipad i iphone, z i bez splitViewController. – shinoys222
akcja na pasku nawigacyjnym deatilVC powinna być ustawiona na splitVC lub master's – shinoys222