2014-10-06 9 views
6

Alle, verbergenWie Master für UISplitViewcontroller in IOS8

ich ein Problem mit neuen UISplitViewcontroller in IOS8 für iPad getroffen haben. Ich habe eine UITableView im Storyboard im DetailViewcontroller und beim Klicken auf die Zelle sollte ich zu der anderen Ansicht namens "detailinfo" gehen. Ich benutze derzeit einen "Show" -Übergang.

Allerdings schieben Sie den aktuellen Abschnitt einfach auf den rechten Teil. Ich möchte es im Vollbildmodus anzeigen lassen, aber ich weiß nicht, wie ich es machen soll. Ich habe versucht, die preferredDisplayMode-Eigenschaft von splitViewController zu verwenden. Das Ergebnis ist, dass es die Masteransicht verdeckt, aber die Detailansicht nicht geändert hat. Ich möchte das Geschenk nicht als Modal verwenden.

aktuelle Weise, die ich tue, ist

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([[segue identifier]isEqualToString:@"showStudentDetail"]){ 

     if(self.traitCollection.horizontalSizeClass != UIUserInterfaceSizeClassCompact){ 
      UISplitViewController *splitViewController = (UISplitViewController *)self.navigationController.parentViewController; 
      splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden; 
     } 

    } 
} 

und in viewDidAppear,

- (void)viewDidAppear:(BOOL)animated { 

    if(self.traitCollection.horizontalSizeClass != UIUserInterfaceSizeClassCompact){ 
     UISplitViewController *splitViewController = (UISplitViewController *)self.navigationController.parentViewController; 
     splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic; 
    } 
} 

mit Das wird funktionieren, aber die masterViewController wird "Jump out", was eine sehr schlechte optische Wirkung hat. Hope kann jede Hilfe bekommen, danke

Antwort

4

UISplitViewController ist ein komplexer View-Controller, der aus zwei Kind View-Controller besteht. Wenn Sie also ein Segment verwenden, das zu einem der Kind-View-Controller hinzugefügt wird, fordern Sie den Kind-View-Controller auf, das Segment auszuführen. Und dieser Kindansicht-Controller hat teilweise Kontrolle über das aktive Fenster.

In Ihrem Fall müssen Sie den Split-View-Controller bitten, den Übergang durchzuführen. Sie sollten also den Abschnitt zu Ihrem Split-View-Controller hinzufügen, der das aktive Fenster behandelt. Auf diese Weise haben Sie die Vollbildoption.

UPDATE

Wenn Sie möchten, verwenden gegenwärtig als modal und nicht wollen, "Jump out" -Effekt vermeiden Sie Master mit Animation

UISplitViewController *splitViewController = [self splitViewController]; 
[UIView animateWithDuration:0.25 animations:^{ 
    splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden; 
} completion:^(BOOL finished) { 
    [splitViewController showDetailViewController:vc sender:nil]; 
}]; 
+0

U r Recht verstecken kann, muss ich die splitviewcontroller fragen den Übergang durchführen –

Verwandte Themen