2012-04-03 18 views
12

Bir görüşe göre görünüm denetleyicisi kaynak kodunu (örneğin viewDidLoad, viewWillAppear, vb)çek eğer

ya da nasıl olabilir kontrol etmeden yüklenir görebiliyordu herhangi bir yolu var mı Alt görünümleri almak için herhangi bir görünüm yüklenirse, çalışma zamanında/dinamik olarak kontrol ederim.

+0

mesela, benim bakış yüklenene kadar beklemek istiyorum ve daha sonra Bu görünüm için tüm alt görünümleri alın ve bu UIViews'in özelliklerini ve bilgilerini kullanarak KIF adımları ve senaryoları gibi bir şey kullanarak test yapmaya başlayın. Görünümün yüklenmesini beklemek istiyorum ancakUIViews 'özelliklerine nasıl sahip olabilirim, çünkü yalnızca görünümün tüm alt görünümlerini alabildiğim için yüklenebilirlik etiketlerini – ramo

+0

kullanmak istiyorum. Bu bilginin başka bir kaynaktan alınmasına ihtiyacım var, kütüphane dosyası olsun, proje kaynak kodunda değil. – ramo

cevap

35

, bunu sorabilirsiniz:

viewController.isViewLoaded 
+0

sonra nerede kontrol etmeli ve isViewLoaded olduğunu kontrol etmeliyim. Bu yüzden uygulamaDidFinishLaunching çağrılır ve sonra ilk görünümün viewdidload çağrılır. check inViewLoaded nerede olabilir – ramo

3

"Yüklenen" ile ne demek istediğiniz konusunda tam olarak açık değilim. Eğer "yüklü" nin tanımına olabilir bağlı:

  • kontrol görünümü yüklü ait nil (en geniş tanımı ise, bu ayırmanın açarken bir olsun diye bu, görünümü dışarı nilling birisi bağlıdır rağmen EXC_BAD_ACCESS). Görünümün süper görünüme sahip olup olmadığını görmek için [view superview] seçeneğini kontrol edin.

  • Kontrol [view window] bir görünüm bir pencere

  • karşılık gelen bir UIViewController var varsayarsak, bu yüklü olup olmadığını görmek için kontrolörün isViewLoaded özelliğini sorgu ("ekranında" olmak için önkoşul) bir parçası olup olmadığını görmek için hafızaya bir bakış. Bu özellikle yaşam döngüsü konularını ele alır.

muhtemelen kontrol edebilirsiniz "yüklü" ve diğer şeylerin diğer yorumların vardır, ama bunlar benim başımın üstü kapalı ilk şeylerdir.

0

Kullanım durumunuzdan tam olarak emin değilsiniz, ancak yalnızca görünüm hiyerarşisini sorgulamak istiyorsanız bu yardımcı olabilir.

- (UIView *)viewWithTag:(NSInteger)tag 
  1. Etiketi, ex, ilgilenen tüm görünümler. belirli ilgi alanlarına göre etiketleme; "ImportantView1", "ImportantView2", ...

  2. Yukarıdaki API görüşme

  3. çağrı olacak (ana) görünüm sorgulama ve tüm subviews yapmak için bir (ana) görünümü gerek . Görünümleri özel etiket adınıza göre filtreleyin. (Etiket "ImportantView" ile başlıyorsa) görüntülenir bir kontrolörün bir örneği varsa