2010-10-17 21 views

cevap

5

Kodunuza bir göz attım. Bu nedenle sorun, viewWillAppear/viewDidAppear'ın, görünüm pencereye eklendiğinde, alt görünümlerinden birine değil de çağrılmasıdır. Bunun için viewDidLoad kullanmak isteyebilirsiniz.

+0

Gerçekten, bunu daha önce hiç yapmak zorunda kalmadım? –

+0

Örneğinizde, subVC2'nizin görünümünü anaViewController görünümünüze eklersiniz. Bu, viewDidAppear işlevini çağırmaz; çünkü bu yöntem, uygulamanızın "window" nesnesine eklediğinizde çağrılır. Örneğinizde yaptığınız diğer iki hata: subVC2'nizi "init" yöntemiyle başlatırsınız. Bence ucunda oluşturduğun birini kullanmak istiyorsun. InitWithNibName: bundle: yöntemini kullanmanız gerekir. Son olarak, alt ekranını eklediğinizde, altVC2'yi yayınlamak isteyebilirsiniz, çünkü herhangi bir referans göstermezsiniz. – Julien

+0

Oh Bir ucu kullanmak istemedim, ancak subVC2'yi yayınlamamalıydım çünkü subvc2'nin görünümünü yalnızca tüm viewcontroller addsubview yöntemine geçirmedim? Ayrıca iPhone'daki VW/DA hakkında da böyle bir şey var, çünkü yemin ederim ki bu bana daha önce gelmedi. –

1

Size gerçekten UIViewControllers bu hiyerarşi ile ne yaptığınızı yapıyor olması gerekir eminiz, Öncelikle:

İşte benim problem göstermek için bir xcode projedir? Neden MainViewController'ınız subVC1 ve subVC2 ürününüzün sorumlusudur?

İkinci olarak, ViewWillAppear/viewDidAppear, onları MainViewController'ınızdan çağırmak için kodu yazdığınızda çağrılır. Tasarımınız hakkında başka bir şey bilmeden, onları ne zaman aramanız gerektiği konusunda size tavsiyede bulunmak mümkün değildir, ancak alt kontrolörlerin görüşleri 'ana' görünüm görünür olduğunda her zaman görünür olacaksa, muhtemelen onları aramak mantıklıdır. mainViewController'unuzun viewWillAppear/viewDidAppear yöntemlerinden.