2012-04-15 29 views
12

'u kullanarak bir UITableViewController'ı nasıl görüntüleyeceğim Tüm tablo görünümü mantığını bir görünüme bağlı bir UITableViewController'da kapsüllem var. Bu, storyboard'lar kullanılarak yapıldı.Başka bir Denetleyicide Storyboards

başka görünümü denetleyicisi/görünümü içinde mantık ve görünümünü tabloya istiyoruz

I aşağıdaki unsurları (altından tür kaydırılabilir tablosu ile bir başlık bilgileri gibi).: CustomViewController bir bağlantılıdır UIView iOS saat uygulamasının Kronometre senaryosunu taklit çalışıyorum Esasen

(Storyboard'dan sürüklemiş) bir UITableView bağlıdır CustomTableViewController (film şeridi gelen sürüklemiş)

  • Bunun için canavar yaklaşımı nedir?
  • Programatik olarak nasıl yapılır?
  • Bu bir şekilde storyboard üzerinde yapılabilir mi?

Herhangi bir yardım çok takdir edilecektir. Teşekkürler

+0

Oldukça anlamıyorum ... Bir UIViewController alt görünüm olarak eklemek ister misiniz? – CodaFi

+1

"Canavar yaklaşımı", rawr! – pfrank

cevap

25

Tamam, anladım. Bu özellik orada eklendiğinden, bu çözüm iOS 5'e özgüdür. Bu yöntem, storyboard'larla çalışır.

Kurulum: Amaç, bir denetleyicinin başka bir denetleyicide görüntülemesini ve mantığını barındırmaktır. Film şeridinde çocuk görünümü denetleyicisi başvurmak için gerçek yolu olmadığından

  1. biz View Controller bir isim vermek gerekir. Bu, senaryodaki denetleyicideki "Tanımlayıcı" özelliğini doldurarak yapılabilir. NOT: Denetleyiciye denetleyicinin değil, tanımlayıcıyı verdiğinizden emin olun.

  2. Toplamak istediğiniz denetleyiciyi örnek olarak uygulayın. Bu barındırma denetleyicisinden yapılabilir.

    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ControllerIdentifier"]; 
    
  3. kontrolörleri ebeveyn kontrolörleri görünümüne görüntülemek çocuğu ekle ebeveyn kontrolörü

    [self addChildViewController: controller]; 
    
  4. çocuk denetleyicisi ekleyin. Ebeveyn denetleyicisinde alt görünümünde çocuk görünümü eklemek istediğiniz yer tutucu görünümü varsa, bunu yaptığınız yer budur. Burada ana kontrolörde UIView denilen bir sahne ekliyorum.

    [self clearStage]; 
    [self.stageView addSubview:controller.view]; 
    presentedController.view.frame = self.stageView.bounds; 
    

Ve o kadar. Gayet basit. Denetleyicileri değiştirerek ve ev yapımı sekme denetiminde görüntüleyerek başarıyla kullandım. Alt denetleyici, görünüm yaşam döngüsündeki görünümlerini içerir, bu nedenle viewDidLoad, vb. Hepsi bu alt denetleyicide beklendiği gibi çalışır.

Bu konuda yardımcı olur.

İlgili konular