iOS8

2014-10-06 16 views
6

Tüm, ben iPad için iOS8 yeni UISplitViewcontroller ile ilgili bir sorun tanıştımiOS8

yılında UISplitViewcontroller için MasterView gizlemek için nasıl. DetailViewcontroller'da storyboardda bir UITableView var ve hücreyi tıklatırken "detailinfo" adlı başka bir görünüme gitmeliyim. Ben bir "gösteri" segue kullanarak yaşıyorum. Bununla birlikte, şu anki segue sadece doğru parçaya basmaktadır. Tam ekran göstermek istiyorum, ama nasıl yapılacağını bilmiyorum, splitViewController preferredDisplayMode özelliğini kullanmayı denedim, sonuç sadece ana görünümü gizlemek ama detailView yeniden boyutlandırmak değil mi. Şimdi modal olarak kullanmak istemiyorum. Ben yapıyorum

akım yolu

- (void)viewDidAppear:(BOOL)animated { 

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

Bu çalışacaktır kullanarak,

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

    } 
} 

ve viewDidAppear

olmakla masterViewController çok kötü bir görsel etkiye sahip olduğu "dışarı atlama" olacaktır. Umut, herhangi bir yardım alabilir, teşekkürler

cevap

4

UISplitViewController, iki alttan görünüm denetleyiciden oluşan karmaşık bir denetleyicidir. Bu nedenle, herhangi bir çocuk denetleyicisinin herhangi birine eklenen bir segue kullandığınızda, çocuk denetleyicisinin segue'yi gerçekleştirmesini istersiniz. Ve bu çocuk görüş kontrolcüsü aktif pencerenin kısmi kontrolüne sahiptir. Sizin durumunuzda bölünmüş görüntü denetleyicisinden segue yapmak için sormanız gerekir. Bu nedenle, segue'yi aktif pencereyi işleyen bölünmüş görünüm denetleyicinize eklemelisiniz. Bu şekilde tam ekran seçeneğine sahip olacaksınız.

GÜNCELLEME

Eğer modal olarak mevcut kullanarak istemiyorum, ve animasyonu

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

U sağ r kullanarak ana gizleyebilirsiniz etkiyi önlemek "dışarı atlama" istiyorsan, ben splitviewcontroller sormak gerekir segue gerçekleştirmek –

İlgili konular