NavigationBar не нужно прокручивать с помощью UITable

Я разрабатываю приложение для iPhone. Я использую UITable подкласс UITableViewController. Я добавил панель навигации к представлению: UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];[self.tableView addSubview:navBar];, теперь проблема в том, что панель навигации прокручивается вместе с таблицей, и этого я хочу избежать. Можно ли избежать этого с помощью UITableViewController?


person PiccoloBuddha    schedule 24.09.2010    source источник
comment
Можно поподробнее .. какова структура xib? или что такое супервизор, тип контроллера просмотра файла?   -  person k-thorat    schedule 24.09.2010
comment
Я ничего не сделал с файлом xib, это просто класс, который является подклассом UITableViewController, а в viewDidLoad я добавляю панель навигации, но она прокручивается вместе с таблицей   -  person PiccoloBuddha    schedule 24.09.2010


Ответы (1)


Ты говоришь

Я использую UITable подкласс UITableViewController

Я предполагаю, что вы используете подкласс UITableViewController, который, естественно, содержит UITableView. Ваша проблема вызвана тем, что вы вставили NavigationBar в UITableView или, точнее, в UIScrollView, который является частью TableView. В зависимости от ваших потребностей у вас есть два варианта:

  1. Если вы хотите, чтобы ваше приложение вело себя, например, Mail (так что ваш TableView будет всего лишь одним элементом в структуре представлений, через который вы можете копать), вам следует использовать UINavigationcontroller и сделать ваш TableViewController первым представлением NavigationController, например, когда вы открываете шаблон «на основе навигации» в Xcode . UINavigationcontroller уже будет содержать UINavigationBar, так что вам не о чем беспокоиться.
  2. Если по какой-то причине это не то, что вам нужно, вам придется создать UIView, который будет содержать ваш UINavigationBar, а также UITableView. Поскольку выполнение такой настройки с помощью UITableViewController, как известно, довольно сложно, вы можете отказаться от TableViewController и заменить его простым ViewController, который реализует как «UITableViewDelegate», так и «UITableViewDataSource» -Delegate. Дополнительную помощь см. В этом сообщении.
person Phlibbo    schedule 24.09.2010
comment
Спасибо, я выбрал второй вариант, я прочитал ссылку, которую вы публикуете, но теперь у меня новый вопрос, потому что я всегда использовал UItable с UITableViewController: я добавил UITable в файл xib, я подключил его с помощью IBOutlet в файле .h , я добавил UIViewController ‹UITableViewDataSource, UITableViewDelegate› в файл .h, в конце я реализовал все методы для управления таблицей (numberOfRowsInSection: или - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NS) как обычно с контроллером UITableView, но данные не загружаются! - person PiccoloBuddha; 25.09.2010
comment
Только что решено! Мне нужно только связать делегата и источник данных с владельцем файла! Спасибо за вашу помощь!! - person PiccoloBuddha; 25.09.2010