2011-12-16 2 views
1

Может ли кто-нибудь описать, как можно иметь TableViewController с его xib-файлом, имеющим в своем корне и uitableview как подвью? Я считаю, что TVController почему-то предполагает, что UITableView заполнит всю область. Почему? У меня есть определенная необходимость в создании своего рода бокового и нижнего интерфейса с вкладками с UITableView в качестве основной области. Нажатие вкладок изменяет предикат для fetchedresultscontroller и т. Д. И т. Д. Причина, по которой я хочу это, объясняется широтой и глубиной категорий данных в модели данных. Мне нужно расколоть структуру меню много ... другой разумный с помощью структуры контроллера таблицы и навигатора, пользовательский интерфейс будет сродни погружению во все глубже глубины пещеры! Моя идея проверена и обоснована в других парадигмах ... в iOS это почти похоже на путь Apple или шоссе. Я в порядке с APPLE, конечно, не хватит. Но я действительно хотел бы создать это. Я попытался добавить новый контроллер tableview в комплекте с xib, а затем удалить UITableView в IB и заменить UIView и UITableView как подвью, подключив (я считаю) делегата к владельцу файла. Я создал IV Tableview для того, когда я хочу, чтобы ссылаться на него и снова используется IB, чтобы подключить его в IBСвязать UITableView с TableViewController

Попробуйте запустить его и он скулит, что ... [UITableViewController loadView] загрузили «TabbedTableController» перо, но не получил UITableView ». На самом деле, похоже, я не могу понять, в чем проблема. Кажется, я больше не могу подключить UITableView вверх!

Любая помощь будет потрясающей. Я отправлю вам рождественскую открытку в отчаянии: ^) Также ... почему так должно быть и насколько строго эта полноэкранная UITableView? Просветите меня, если сможете. Документы, которые я прочитал, не хотят.

Привет Кит

ответ

2

UITableViewController ли предположить, что вид корня (т.е. контроллер view свойства) будет UITableView, таким образом, представление таблицы заполняет экран. Когда вам нужно представление, которое объединяет UITableView с другими видами верхнего уровня, вам нужно будет немного поработать, но это не сложно:

Контроллер вашего представления не будет подкласса UITableView. Вместо этого:

@interface MyViewController : UIViewController 
    <UITableViewDelegate, UITableViewDataSource> 
@property (nonatomic, weak) IBOutlet UITableView* tableView; 

В Interface Builder, падение через UITableView и любых других элементов управления вам нужно. Вид таблицы может быть любого размера и в любом месте иерархии представлений. Также в Interface Builder, ctrl-drag из представления таблицы в ваш VC и установите выходы delegate и dataSource, а ctrl-drag из вашего VC в представление таблицы, чтобы установить выход tableView.

Ваше мнение реализация контроллера должен быть типичный вид таблицы реализации контроллера: cellForRowAtIndexPath и т.д.

UITableViewController более или менее просто все вышеперечисленные работы упакованы в единый блок для вас.

+0

ах, конечно, спасибо. до сих пор не понимаю, почему это ограничение –

+0

EDIT: Да, я понимаю теперь, что это ограничение. Подкласс. UITableViewController - это подкласс ViewController, но соответствующий требуемому делегату и источнику данных. Итак, почему кто-то хочет изменить что-то, построенное по определенной причине. Иди, сделай свой.Можете ли вы сказать с моими медленными реалиями о том, как все работает, я ДОЛЖЕН быть реформированным .NET-кодовым? Thankyou снова esker –