2015-02-06 29 views
5

Mam kontroler widoku podzielonego w trybie poziomym z dwoma kontrolerami nawigacyjnymi.Obrót kontrolera widoku podziału na iPhone'a 6 Plus

enter image description here

to wali do jednego kontrolera nawigacyjnego w portret i widok kontrolera szczegół jest popychany od mistrza.

enter image description here

Gdybym obrócić z powrotem do góry, gdy kontroler szczegółowy widok jest popychany w układzie pionowym Nie rozumiem, w jaki sposób umieścić kontroler szczegółowy widok z powrotem w jego własnym kontrolerem nawigacyjnym.

enter image description here

Odpowiedz

4

Należy wdrożyć UISplitViewControllerDelegate. Najprostszym sposobem może mieć własną klasę MySplitViewController i wyznaczyła sobie jako delegat w viewDidLoad:

self.delegate = self; 

Po pierwsze, może chcesz showDetailViewController wyglądać mniej więcej tak:

- (BOOL) splitViewController:(UISplitViewController*)splitViewController showDetailViewController:(UIViewController*)vc sender:(id)sender 
{ 
    if (splitViewController.collapsed) 
    { 
     [(UINavigationController*)splitViewController.viewControllers[0]) pushViewController:vc animated:YES]; 
    } 
    else 
    { 
     self.viewControllers = @[ self.viewControllers.firstObject, vc ]; 
    } 
    return YES; 
} 

To powinno dbać o właściwą pokazywanie widoku szczegółów w obu orientacjach.

Następnie należy wdrożyć następujące metody delegata podobny do tego:

- (UIViewController*)    splitViewController:(UISplitViewController*)splitViewController 
separateSecondaryViewControllerFromPrimaryViewController:(UIViewController*)primaryViewController 
{ 
    UINavigationController* nc = primaryViewController; 
    UIViewController* detailVC = nc.viewControllers.lastObject; 
    return detailVC; 
} 

Metoda ta jest okazja, aby wziąć co chcesz od kontrolera głównego i powrócić że jako szczegół widoku kontrolera. Powyższy przykładowy kod jest dość prosty, możesz potrzebować przejść przez widok nawigacyjnyControllers i wybrać wszystkie rozpoczynające się od określonego kontrolera widoku (zakładając, że popchnąłeś z widoku szczegółów).

W każdym razie naprawdę warto było poświęcić trochę czasu i przeczytać: UISplitViewController class reference, a zwłaszcza UISplitViewControllerDelegate Protocol Reference To będzie znacznie wyraźniejsze. Jeśli chcesz uzyskać skrót, spójrz na projekt szablonu podzielonego widoku kontrolera Xcode. Ta powinna również zawierać wskazówkę lub dokładne rozwiązanie twojego problemu.