2015-09-08 19 views
5

Container View numaralı ViewController ile gömülü TableViewController sahip.ContainerView eklenti ekle

Şimdi

i ViewController yılında TableView erişmek istiyorum, nasıl bunun için bir çıkış yapabilir?

Konteyner Görünümü'nü bir çıkış olarak eklemeyi denedim, ancak gömülü olan TableViewController'a erişemiyorum. kullanmak aksi takdirde

enter image description here

cevap

11

Tablo görünümü farklı bir sahnededir (denetleyiciyi denetle), ancak UITableViewController örneğine başvurduğunuzda tablo görünümüne erişebilirsiniz. Bunu yapmanın birkaç farklı yolu var.

İlk olarak, UIViewController alt sınıfınızın childViewControllers özelliğini kullanabilirsiniz. Sadece tek bir çocuğun olduğunu biliyorsanız, doğrudan ona erişebilirsiniz, aksi halde doğru çocuk hangisi olduğunu belirlemelisiniz.

let myTableViewController = self.childViewControllers[0] as! UITableViewController 
let theTableView = myTableViewController.tableView 

İkinci seçenek embed segue sırasında UITableViewController erişmektir. Hikaye tahtanızdaki gömülü salona tıklarsanız, onu diğer tüm hakaretlerde olduğu gibi bir tanımlayıcıya verebilirsiniz. Sonra prepareForSegue uygulamak ve gömülü UITableViewController örneğini yakalayabilir - Ben 'süpürge'

+0

İkinci yaklaşım kayalar olduğunu düşünüyorum

Şahsen
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { if (segue.identifier == "tableviewEmbed") { let myTableViewController = segue.destinationViewController as! UITableViewController let theTableView = myTableViewController.tableView } } 

, bu ikinci yaklaşımı tercih! – TalL

1

çocuk View Controller içinde çıkış oluşturma ve bunu self.childViewControllers.lastObject kullanarak erişim (eğer sadece bir çocuk varsayarak objectAtIndex :) doğrudan çünkü bir çıkış yapamaz