UITableViewControllers
- это UIViewControllers
, которые имеют свойство основного вида UITableView
. Таким образом, UITableView
делает весь экран.
Подход, который вы ищете, использует стандартный UITableViewController
, чье представление является стандартным UIView
, и добавьте свои UISearchBar
и UITableView
в качестве подпредставления к нему в IB.
Для этого просто:
- Измените класс вашего контроллера представления и вместо этого отметьте, что он соответствует протоколам, связанным с табличным представлением: измените
@interface UITableViewController
на @interface UIViewController <UITableViewDelegate, UITableViewDataSource>
- Добавьте свойство
@property(nonatomic, retain) IBOutlet UITableView* tableView
в заголовочный файл и соответствующий оператор @synthesize tableView;
в реализации. Не забудьте установить это свойство обратно nil
(self.tableView = nil
) в вашем dealloc
для хорошего управления памятью
- Свяжите свой экземпляр
UITableView
в InterfaceBuilder с этим вновь созданным IBOutlet.
Таким образом, у вас все еще есть UITableView, но это не будет основной вид, который занимает весь ваш экран; вместо этого вы можете расположить tableView так, как вам нужно, и сделать так, чтобы он занимал только часть экрана, и разместить над ним панель UISearchBar.
Другой подход заключается в использовании UISearchDisplayController
для управления UISearchBar.