2015-02-06 8 views
5

Ich habe einen Split-View-Controller im Querformat mit zwei Navigations-Controller.Split View Controller Rotation auf iPhone 6 Plus

enter image description here

Dies kollabiert zu einer einzelnen Navigationssteuerung im Hoch- und der Detailansicht-Controller wird von dem Master geschoben.

enter image description here

Wenn ich wieder nach Landschaft drehen, wenn die Detailansicht Controller im Portrait geschoben Ich verstehe nicht, wie die Detailansicht Controller wieder in seine eigene Navigationssteuerung.

enter image description here

Antwort

4

Sie sollten UISplitViewControllerDelegate implementieren. Einfachste Art und Weise können Sie Ihre eigene MySplitViewController Klasse haben und setzen sich als Delegierter in viewDidLoad:

self.delegate = self; 

Erstens kann man showDetailViewController möchte etwas wie folgt aussehen:

- (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; 
} 

, kümmert sich um die richtige nehmen sollte Darstellung der Detailansicht in beiden Ausrichtungen.

Als nächstes sollten Sie folgende Delegatmethode ähnlich wie dies umzusetzen:

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

Diese Methode ist Ihre Chance zu nehmen, was man sich von primären Controller wollen und zurück, dass als Detailansicht Controller. Der obige Beispielcode ist ziemlich einfach. Sie müssen möglicherweise durch Navigation ViewControllers navigieren und alle auswählen, die mit einem bestimmten View-Controller beginnen (vorausgesetzt, Sie hatten Push-Vorgänge aus der Detailansicht).

Sowieso wäre es wirklich Auszahlung einige Zeit in Anspruch nehmen und lesen: UISplitViewController class reference und besonders UISplitViewControllerDelegate Protocol Reference Dies wird viel klarer. Wenn Sie eine Verknüpfung wünschen, werfen Sie einen Blick auf Xcode Split View Controller-Vorlage-Projekt. Dieser sollte auch Hinweis oder genaue Lösung für Ihr Problem enthalten.

Verwandte Themen