Ben iOS5 ve yeni UIViewController tecrit yöntemleri ile başlayarak, addChildViewController birlikte bu yöntemleri çağırmak gerekiyor biliyorum:, removeFromParentViewController: ve geçiş yöntemi. Ayrıca üç senaryoda onları çağırmanın doğru sırasını biliyorum. Bilmediğim şey, bu yöntemlerin tam olarak ne yaptığıdır?Tam olarak ne olacak MOWToParentViewController: ve didMoveToParentViewController: do?
bu sadece UIViewController alt sınıfları için puan geçersiz olsaydı biz geçersiz kılmak için süper çağırmak için gerekli olmaz sanırım. nil bir görünüm denetleyicisi veya didMoveToParentViewController çıkarmadan önce: kendinden Ben willMoveToParentViewController aramazsam/Ne yanlış gidecek ki?
Evet, 'add' ve 'remove' komutlarını bir yöntemi otomatik olarak çağırır (sırasıyla willMove ... ve didMove ...) ve diğerini manuel olarak çağırmanızı gerektirir. Ben 'add' ve 'remove' yapmanın ne anlama geldiğini anlamakta hiç sorunum yok - bu oldukça zor görünüyor. Ben sadece 'irade' ve 'did' aslında ne yaptıklarını biraz kafamda hissediyorum. – konrad
"Will" ve "did" özel bir uygulamaya sahip değil, siz onları çocuk denetleyicisine çağırıyorsunuz ve eğer yapmıyorsanız, o zaman basitçe aranmıyorlar. Kontrolör onları uyguladı ve onlara güveniyordu. Cevabımla yanlışlıkla onları "temsilci yöntemleri" olarak adlandırdım, ama neredeyse onlar olduklarını, isteğe bağlı temsilci yöntemleri olarak işlev görüyorlar ve çocuk bunları bir takım kurulum veya temizlik yapmak için kullanabilir. Herhangi bir UIViewController alt sınıfı bunları geçersiz kılabilir ve bir kapsayıcı denetleyicisi uygularsanız, bu davranışa saygı duymanız ve bunları çağırmanız gerekir. – Guillaume
Açık olmak gerekirse, UIViewController'ın willMoveToParentViewController: 've' didMoveToParentViewController: 'hiçbir şey yapmayın. Ancak, herhangi bir alt sınıf onların geçersiz kılınmasına izin verir, bu yüzden onları çağırmazsanız, çıplak bir UIViewController'ı kırmayacaksınız, ancak buna dayanan alt sınıfları kıracaksınız (örneğin: bir alt sınıf bir nesneyi yayınlamak istediğinde Metodu çağırmazsanız, ana görüntüleme denetleyicisinden kaldırılır, bu durumda nesneyi asla bırakmaz. – Guillaume