Стратегии отладки, когда ячейки UITableView не загружаются?

Я пытаюсь встроить UITableView в основной UIView моего ViewController, который составляет 75% ширины экрана. В идеале этот UITableView также должен быть встроен в контроллер навигации. Кроме того, кажется, что я не могу использовать UIContainerViews с iOS 5, потому что я сталкиваюсь с ошибкой "Не удалось создать экземпляр класса с именем UIStoryboardEmbedSegueTemplate" (см. /questions/25088878/nsinvalidunarchiveoperationexception-s-containerview).

Для этого я создал UIView в основном UIView моего ViewController, который составляет 75% ширины экрана. В этом UIView я поместил UINavigationBar и UITableView. Я создаю экземпляр UITableViewController в ViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil функция. После создания экземпляра я подключаю UITableView моего ViewController к UITableView UITableViewController через self.tableViewController.tableView = self.tableView,

Кажется, все работает нормально, за исключением того, что мой UITableView не показывает никаких ячеек, даже если я предварительно загружаю его данными.

Какие дополнительные данные я могу предоставить, чтобы помочь диагностировать проблему? Я, конечно, не получаю никакого сообщения об ошибке, и источник данных действительно получает данные, и я вызываю [self.tableView reloadData] после обновления источника данных.

ОБНОВЛЕНИЕ 1

Chrome для iOS

В конечном счете, это именно тот тип поведения, который мне нужен, за исключением того, что вместо нескольких веб-представлений мне бы хотелось иметь несколько табличных представлений, каждое из которых было бы встроено в собственный контроллер навигации. Я предполагаю, что Chrome для iOS просто делает снимок экрана (?) Веб-страницы, поскольку при прокрутке вкладок взаимодействие не включено, но как бы вы это сделали, если хотите сохранить взаимодействие?

ОБНОВЛЕНИЕ 2

Конкретная линия, кажется, CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier] где static NSString *CellIdentifier = @"New Cell" (и соответствующий прототип UITableViewCell определен таким в IB). Тем не менее, код, похоже, не падает на этой строке; вместо этого создается точка останова (Thread 1: Breakpoint 1.1) это я не обозначил. Кроме того, это происходит только при тестировании на моем устройстве iOS. Все отлично работает при тестировании через симулятор iOS.

2 ответа

Решение

Здравствуйте: Окончательный ответ на мою конкретную проблему, связанную с тем, как iOS 5 против iOS 6 обрабатывает автоматическое расположение, в частности, в отношении UITableViewCells ("Автоизображение подвидов"); ср., по каким причинам пользовательские UITableViewCells могут работать в iOS 6, но не в iOS 5?

Поскольку этот конкретный вопрос является расплывчатым, а "ответ" не относится к тому, что, по моему мнению, было проблемой, я должен проголосовать за его удаление?

Ваши методы источника данных должны быть реализованы в вашем tableViewController (что, кажется, вы не сделали). Вы должны были бы установить datasource свойство вашего tableViewController для self и реализовать методы в вашем исходном контроллере представления (т.е. self). Кроме того, вы должны были бы добавить <UITableViewDataSource, UITableViewDelegate> протоколы в объявлении @interface.

Не проще ли получить стандартный маршрут и подкласс? UITableViewController переопределить методы источника данных?

Другие вопросы по тегам