2014-10-07 6 views
7

Benim standart uygulaması şudur. Gezinme düğmesini başlatıyorum ve düğmeyi ve popover'ı yerel olarak kaydediyorum.kaldırılan yöntem splitViewController nasıl değiştirilir: willHideViewController: withBarButtonItem: forPopoverController: Bu temsilci yöntemi için

- (void) splitViewController: (UISplitViewController *) splitController 
     willHideViewController: (UIViewController *)  viewController 
      withBarButtonItem: (UIBarButtonItem *)  barButtonItem 
     forPopoverController: (UIPopoverController *) popoverController 
{ 
    // Set the button to open the PopOver 
    barButtonItem.title = viewController.title; 
    [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES]; 

    // Save the ref to the default left navigation button 
    _masterButton = barButtonItem; 

    // Save the ref to the PopOver 
    _masterPopOver = popoverController; 
} 

iOS 8 itibaren bu yöntem eskimiştir ve Apple belgelerine diyor ki:

splitViewController Uygulanışı: willChangeToDisplayMode: yöntemini yerine.

Ancak yeni yöntemin argümanlar kaldırılan yöntemi ile ilgisi yoktur! Ben bir düğme ve bir popover kendim oluşturmak zorunda değil mi?

birileri zaten bu yeniden-kodlama akım pop-up davranışı uygulamak için yapılmış mıdır?

Yardımlarınız

+0

Bu sorunun cevabı bulunamadı mı? Aynı şeyi arıyorum! – lionserdar

+1

Henüz değil. Sanırım işi kendim yapmak zorunda kalacağım. Benim için çok acil değil, ama işimi yaptıktan sonra buraya koyacağım – PatrickV

cevap

11

displayModeButtonItem bir göz atın için teşekkür ederiz. Kullanımdan kaldırılan yöntemden barButtonItem'e çok benzer. şu şekilde yöntemini: willChangeToDisplayMode:

Yeni splitViewController kullanarak halinde örnek planı ayrı

- (void)splitViewController:(UISplitViewController *)svc 
    willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode { 

    if (displayMode == UISplitViewControllerDisplayModePrimaryHidden) { 
     self.navigationItem.leftBarButtonItem = svc.displayModeButtonItem; 
    } 
} 
+1

Ama 'leftBarButtonItem' tanımlanmış. O zaman nasıl yapılır? –

+0

Teşekkürler - Kod tamamlandı, sadece kopyala ve ayrıntı görünümünde geçmiş. –

1

Bu İskender'in cevabı bir uzantısıdır. Cihad yorumuna kapsayacak için: kodun son satırı leftBarButtonItem oluşturup usta viewController açılacaktır mavi "<" düğmesine yapar.

Sadece benim detaylı viewController gelen willHideViewController ve willShowViewController dışarı yorumladı ve kesip İskender'in kodunu yapıştırılan. İlk kez çalıştım.

Sonra ben portrede uygulaması başladı ben geri portre manzara gitti ve kadar işe yaramadı keşfetti. Açıkçası, yönelim değişene kadar yöntem çağrılmaz.

Yani benim detaylı viewController benim viewDidLoad yönteminde bu kodu eklenmiş ve iyi çalıştı:

 //Set up the splitview controller 
    if (self.splitViewController.displayMode == UISplitViewControllerDisplayModePrimaryHidden) { 
     self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;} 

splitViewController Kullanmak için orada olmalı senin detay viewController bir özelliktir.

İlgili konular