viewWillAppear
ve viewDidLoad
'dan birini alıyorum, bilinene kadar sorun yok. Ancak ben viewWillAppear
içine koymak ve ne zaman viewDidLoad
içine koymak için rehberlik edecek bazı kurallar olmalı diye düşünüyorum?GörünümWillAppear ve ne zaman viewDidLoad içine koymak ne zaman?
cevap
Kullanacağım basit kural budur. viewDidLoad
, görünümün kaynakları yüklendiği zamandır. Görünüm henüz ekranda gösterilmiyor. Dolayısıyla, görünümün geometrisi ve görselleriyle ilgili hesaplamalar ve kodlar buraya konulmamalıdır. viewWillAppear
veya viewDidAppear
yönteminde olmalıdırlar.
Ayrıca viewWillAppear çağrılabilir birden çok kez popover/modal görünümü gösterilir ve
- . Bu nedenle
viewWillAppear
bitirmek için daha uzun sürer kodları içermemelidir. (en azından ana iş parçacığı üzerinde çalışan kod). Her ikisi de görüntüleme başına sadece bir kez çalıştırılması gereken kodlar içermemelidir.
Daha çok eminim var ama bunlar hatırlanması basit ve umarım yardımcı olur.
viewDidLoad: bir görünüm bittiktenUyarılar o yükleme
viewWillAppear:çalıştırır sadece görünüm yükleri
viewDidLoad
önce bir kez yapmak zorunda şeydir. Görünüm her göründüğünde viewWillAppear
çağrılır. viewDidLoad
'da yalnızca bir kez yapmanız gerekenleri yapmalısınız - UILabel
metinlerinizi ayarlamak gibi. Ancak, kullanıcının görüntüleyeceği her seferinde görüntünün belirli bir bölümünü değiştirmek isteyebilirsiniz, ör.iPod uygulaması, "Now Playing" görünümüne her gittiğinizde şarkı sözlerini geri kaydırır.
Ancak, bir sunucudan şeyler yüklerken, aynı zamanda gecikmeyi de düşünmeniz gerekir. Tüm ağ iletişiminizi viewDidLoad veya viewWillAppear içine yüklerseniz, kullanıcı görünümü görmeden önce - muhtemelen uygulamanızın kısa bir dondurmasıyla sonuçlanır. Öncelikle kullanıcıya bir tür etkinlik göstergesine sahip açılmamış bir görünüm göstermek iyi bir fikir olabilir. Ağınızla işiniz bittiğinde, ikinci veya iki kez (veya kim bilir?) Bitebilir, görünümü verilerinizle doldurabilirsiniz. Bunun nasıl yapılabileceği hakkında iyi örnekler çeşitli twitter istemcilerde görülebilir. Örneğin, Twitterrific'te yazar detay sayfasını görüntülediğinizde, görünüm ağ sorguları tamamlanana kadar yalnızca "Yükleniyor ..." yazıyor.
iyi bir açıklama, sadece burada daha önce okudum: http://stackoverflow.com/questions/1579550/uiviewcontroller-viewdidload-vs-viewwillappear-what-is-the-proper-division-of –
Google'ı mı denediniz? –