SORU
5 Aralık 2011, PAZARTESİ


Nasıl Görünüm Denetleyicisi Çevreleme iOS 5'te çalışıyor mu?

WWDC 2011 Oturumda 102, Apple özel görünüm kumanda kapları, UİTabBarController, UİNavigationController benzer oluşturmak için yeteneği olan Görünümü Denetleyicisi, Çevreleme, ve benzeri tanıttı.

Örnekler birkaç kez izledim. Yöntem bu desen ile ilişkili bir telaş var, ama onları tam olarak anlamak biraz zordu. Oluyor bence burada yazılan ve eğer topluluk ya da şüphelerimi doğrulamak disconfirm olacağını görmek için gidiyorum.

Senaryo 1: yeni bir üst görünüm için üst Hareket denetleyicisi

[vc willMoveToParentViewController:self];
[self addChildViewController:vc];
[self.view addSubview:vc.view]; // or something like this.
[vc didMoveToParentViewController:self];

İlk iki satır verilen sırada ortaya bir şey var mı, ya da ters olabilir?

Senaryo 2: üst görünüm üst görünüm denetleyicisi Hareket denetleyicisi

[vc willMoveToParentViewController:nil];
[vc.view removeFromSuperview];
[vc removeFromParentViewController];

Ayrıca [vc didMoveToParentViewController:nil] aramak için gerekli mi? Oturum örneklerde 102bu . yapmadım bu senaryoda, ama bu bir ihmal olup olmadığını bilmiyorum.

Senaryo 3: bir üst Hareket eden başka bir denetleyici görüntüleyin

Bu büyük olasılıkla, her üst görünüm denetleyicisi mantığı kapsüllenmiş çünkü şu şekilde ortaya çıkar.

// In the old parent
[vc willMoveToParentViewController:nil];
[vc.view removeFromSuperview];
[vc removeFromParentViewController];

// In the new parent
[vc willMoveToParentViewController:self];
[self addChildViewController:vc];
[self.view addSubview:vc.view];
[vc didMoveToParentViewController:self];

Soru

Benim ana soru şudur: çevreleme, genel olarak nasıl? Mekaniği yukarıda verilen doğru?

addChildViewController aramadan önce willMoveToParentViewController aramak için gerekli mi? Bu bana mantıklı bir sıralama gibi görünüyor, ama kesinlikle gerekli mi?

removeFromParentViewController çağrıldıktan sonra didMoveToParentViewController:nil aramak için gerekli mi?

CEVAP
5 Aralık 2011, PAZARTESİ


UİViewController dokümanlarwillMove/didMove yöntemleri çağırmak için değil, çok açık. "Implementing a Container View Controller" belgelerine göz atın.

Belgeleri addChildViewController, geçersiz eğer willMoveToParentViewController: yöntem aramak zorunda değilsiniz ki. Ancak bu geçiş tamamlandıktan sonra didMoveToParentViewController: yöntem aramak gerekir. "Aynı şekilde, removeFromParentViewController yöntemi çağırmadan önce willMoveToParentViewController: yöntemini çağırmak için kapsayıcı görünümü denetleyicisi sorumluluğundadır. removeFromParentViewController yöntem alt görünüm denetleyicisi didMoveToParentViewController: yöntemini çağırır."

Ayrıca, bir örnek here çalıştım ve örnek kodu here.

İyi Şanslar

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • optionalinfo

    optionalinfo

    29 EKİM 2005

İLGİLİ SORU / CEVAPLAR