8

Temel tablo görünümünden ilk bakışta (ilk kez yalnızca!UISplitViewController'da görünüm geçişlerini başlatmaya/sonlandırmaya yönelik dengesiz çağrılar

Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x160015600>. 

ana ve detay görünümü denetleyicisi İkisi UINavigationController içine gömülür. Herkes önceden sayesinde bu sorununa çözüm sağlayabilir eğer

class MySplitViewController: UISplitViewController, UISplitViewControllerDelegate { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.delegate = self 
    } 

    func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool { 
     return true 
    } 
} 

harika olurdu: (iPhone'da mantık davranışı için gerekli olan) aşağıdaki ayarlarken Ancak, hata yalnızca oluşur.

BTW: bölünmüş görünüm denetleyicisi ayrıntı görünümü denetleyicisi böyle tableView:didSelectRowAtIndexPath: yöntemle yapılır sunmak film şeridi

kuruldu:

if let detailViewController = delegate as? DetailViewController { 
    detailViewController.navigationItem.leftItemsSupplementBackButton = true 
    detailViewController.navigationItem.leftBarButtonItem = splitViewController!.displayModeButtonItem() 
    splitViewController!.showDetailViewController(detailViewController.navigationController!, sender: self) 
} 
+0

ait segue gerçekleştirmek kullanarak bu çözüldü. Öyleyse, bu durumun storyboard üzerinde mi yoksa programlı olarak mı yapıldığını varsayalım. – user1046037

+0

Bkz. Http://cdn3.raywenderlich.com/wp-content/uploads/2015/05/MathMonsters-Swift-Final.zip ve sonra func splitViewController (splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController ekleyin: UIViewController) -> Bool {return true} ' – user1046037

+0

iPhone – user1046037

cevap

2

Büyük ihtimalle, ustadan ilk geçiş ( UIViewController?) Detayına (UIViewController) görüntülemek UISplitViewController aktif/akım görünümü kendini göstermeyi bitirmeden önce başlar.

Bunun olası bir nedeni, UIViewController ana sayfanızın viewDidLoad() yönteminde ayrıntı görünümünün ilk "örneğini" sunmaya çalışmaktır. Böyle bir durumda, uygulama görünümü ana görünümünden önce görünmeye başlayacaktır. Yük bir görünüm ve görünüşüdür ortaya çıktı mi burada görünümü arasındaki farka dikkat edin:

yüzdesel viewDidLoad() işlev

Açıklama

: kontrolörün görünümü sonra denilen

olduğu belleğe yüklendi. görünüşüdür kontrol bellek içine görünüşüdür hiyerarşi yüklendikten sonra

Bu yöntemi olarak adlandırılır. (Hareketli: BOOL) viewDidAppear fonk


yüzdesel

Açıklama:

onun görünüşüdür a view hiyerarşi ilave edildi görünümü denetleyicisi bildirir. Görünümü sunan ek görevlerini gerçekleştirmek için bu yöntemi geçersiz kılabilirsiniz.Eğer ilk detay görünümü yüklemek nasıl göstermiyor soru olarak

Şimdi, aşağıdaki danışma belki zaten zaten kendiniz önemsenmesi, ancak: En ayrıntılı görünüm viewDidLoad() den sunulursa, bu hareket etmeye çalışın viewDidAppear() yönteme:

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 

    // present/load detail view here instead 
} 
+0

'u deneyin. Detay görünümü denetleyicisini ne zaman sunduğumu açıklığa kavuşturduğum için üzgünüz, düzenlenen soruyu kontrol edin. Yine de, çabalarınız için teşekkürler, ben de bu soruyu sormadan önce okuduğum şey buydu, ancak başvurumun bunu yapmasının bir yolunu düşünemiyorum. – borchero

+0

@OliverBorchert Hmm, daha sonra kodunuzun daha ayrıntılı bir görünümü olmadan, gerçekten bilmiyorum. İlk durum değişikliğinde bir noktada bir geçişi mümkün kılmak mümkün mü? ('animasyon: ...'). Eğer öyleyse, muhtemelen bu tür animasyonları, sizin hata sebebiniz (yani, geçiş geçişlerine neden oluyor) olup olmadığını test etmek için 'false' olarak ayarlayınız. – dfri

+0

Uygulamamda sadece bölünmüş görünüm denetleyicisine sahibim:/ – borchero

0

Bu çok geç bir cevap olabilir, ama her durumda, onun yerine programlama yanı herşeyi inşa ederken aynı sorunu karşısında showDetailViewController

+0

'showDetailViewController',' UISplitViewController' içinde bazı özel amaçlara sahiptir, bu boyut sınıflarına (adaptif) bağlı olarak iter/sunar. Yani showDetailViewController' kullanmak daha iyidir, ama bu bir sorun gibi görünüyor – user1046037

İlgili konular