Вы можете сделать это легко.Хитрость заключается в том, что вам нужно начать с использования UIViewController вместо UITableViewController.
Если вы используете раскадровки, начните с перетаскивания UIViewController на холст.Затем перетащите UITextField на контроллер представления и разместите его там, где вы хотите (т.е. вверху).Затем перетащите UITableView ( NOT UITableViewController) на ваш viewcontroller и установите рамку табличного представления так, чтобы он охватывал все представления контроллера представления, кроме той части представления, в верхней части которой находится текстовое поле (т.е.часть, которую вы не хотите прокручивать).Затем перетащите UITableViewCell из неба объектов на табличное представление.В инспекторе свойств установите для свойства «Идентификатор» ячейки табличного представления нечто уникальное («MyCell» или что-то в этом роде).
После того, как вы это сделаете, ваша сцена раскадровки должна выглядеть примерно так:
Далее вам нужно установить свойства делегата и источника данных вашего табличного представления.Не забудьте сделать это.Сделайте это, нажав Ctrl на табличном представлении и перетащив его из делегата и источника данных в контроллер представления.
Наконец, вам нужно реализовать источник данных таблицы и делегировать методы в вашем классе контроллера представления.В заголовочном файле контроллера представления (.h) объявите, что вы будете реализовывать UITableViewDelegate и UITableViewDataSource следующим образом:
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
, а затем реализуете необходимые методы в файле .m реализации контроллера представления.Как минимум вам нужно будет реализовать tableView:numberOfRowsInSection:
и cellForRowAtIndexPath:
, а возможно tableView:didSelectRowAtIndexPath:
и, возможно, другие.
@implementation MyViewController
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// return number of rows
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
// set value(s) in your table cell here
return cell;
}