2016-04-09 20 views
0

Xamarin araç kutusundan bir Table View Controller'ı, storyboard'unuzdaki mevcut bir ViewController öğesine sürüklediğinizde ve daha sonra UIViewController'dan otomatik olarak oluşturulan bu sınıfa bir sınıf adı verin. Tablo Görünümü Denetleyicisi'ni, film şeridindeki boş bir alana sürükleyip bir sınıf adı verirseniz, otomatik olarak oluşturulan sınıf, UI Tablo ViewController öğesinden miras alır.Xamarin iOS TableViewController varolan ViewController üzerine sürüklendiğinde farklı sınıf

TableView.Source = datasource; 

ben bilmiyorum:

UI Tablo ViewController bunu bir UITableViewSource vererek tablo için DataSource ayarlayabileceğiniz bir özellik olarak adlandırılan Kaynak sahiptir TableView adlı bir özellik vardır Tablo Görünümü Denetleyicisi UIViewController'den miras alırsa bunu yapmak için. Sınıfı UITableViewSource'dan sorun çıkarmadan miras alabilir miyim, yoksa başka bir denetleyiciye yerleştirilmiş Tablo Görünümü Denetleyicisi UIViewController'dan mi mi?

Sınıfın mirasını değiştiremiyorsam, UIViewController'dan miras alınan Tablo Görünümü Denetleyicisi'nin kaynağını belirlemenin en iyi yolu nedir?

cevap

2

UITableViewController değil, mevcut bir denetleyiciye UITableView eklemelisiniz.

+0

Başka bir görünüme UITableViewController eklemeniz gerekmiyor mu? Garip ki bunu yapmana izin veriyor. Anladığım kadarıyla düşünmüştüm (sınıfı değiştirebilirsem), fakat bu hatayı, kodumun herhangi birinin çalıştırılmasından önce alıyorum: Foundation.MonoTouchException: Objective-C istisnası atıldı. Ad: NSInvalidArgumentException Neden: - [SearchResultsTableViewController superview]: örneğine gönderilen tanınmayan seçici 0x7ac9a420 –

+1

Bir denetleyici, alt görünümlerini ve kendi yaşam döngüsüne sahiptir. Bir görünüm sadece bir denetleyicinin çocuğu olabilir. Bir viewcontroller bir diğerinin içine 2 satırlık kodun içine eklenebilir: addchildviewcontroller (vc) ve Add (vc.View). Bir çocuk viewcontroller tam ekran olmayabilir, geçişleri destekler ve karmaşık bir kullanıcı arayüzüne sahip olmalıdır. Dolayısıyla bu tür bir mimariyi kullanmak yaygın değildir, ancak mümkündür. – Softlion

+0

Başar, bu yardımcı olur. Teşekkür ederim! –

1

Başka bir olası senaryo için iki sent'im. Bir TableView tüm ViewController kaplar ve bu sayfada herhangi bir diğer denetimler/widget yok olduğunda, UIViewController yerine UITableViewController kullanabilirsiniz. UIViewController yerine UITableViewController içinde sürükleyebilirsiniz.

İlgili konular