Обновление данных в UITableView, который является корневым видом SplitViewController - PullRequest
0 голосов
/ 29 июля 2010

Надеюсь, мне здесь помогут.

Базовая настройка такова: мое приложение заменяет текущий основной вид главного окна каждый раз, когда я хочу переключиться на новый вид.Зачем?Поскольку в дальнейшем я хотел использовать SplitView в программе (то, что отображается в SplitView, зависит от того, что было выбрано до него).

Что происходит, когда приложение считывает информацию из текстового файла и заполняет UITableView(1) с этой информацией.Затем пользователь выбирает ячейку и нажимает «далее».Затем главное окно отключает предыдущее табличное представление и создает SplitView, у которого UITableView (2) является корневым представлением, а другой UITableView (3) - подробным представлением.

Итак, я получилрабочая часть чтения из файла, а также обновление подробного представления (3) для отображения инициализированного представления на основе того, что было выбрано в исходном UITableView (1).Тем не менее, я не могу получить в корневом представлении (2) правильное отображение параметров, выбранных из исходного представления (1).

Что я делаю, так это то, что у меня в главном окне есть строка, содержащая файлНазовите базу из исходного представления (1) и введите строку в корневой вид (2) SplitView.Затем это корневое представление считывает данные из файла, анализирует их соответствующим образом (все структуры данных инициализируются и работают должным образом, я проверил), а затем отправляет первый элемент в DetailView (3) для отображения.Однако само корневое представление остается пустым, хотя я обновил NSMutableArray, который он использует в качестве источника данных соответствующим образом, и затем назвал [controller.tableView reloadData].

Все правильно подключено в файле .xib какЧто ж.У кого-нибудь есть какие-либо советы, которые я могу получить?

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

1 Ответ

1 голос
/ 29 июля 2010

Обычно пустая таблица вызывается возвращением неверного значения из: – numberOfSectionsInTableView: или – tableView:numberOfRowsInSection:.

Таблица считает, что в ней нет строк, поэтому она никогда не отображает их.


Обновление:

После сохранения массива он начал работать, но только после того, как я перестал использовать [массив счетчик] для количества строк в разделе. я понятия не имею, почему [количество массивов] будет вызвать ошибку (EXC_BAD_ACCESS ошибка не меньше) когда у меня просто вывел содержимое массива через NSLog всего секунду назад

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

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

Department{
    (key = value)
    name = "Engineering";
    employees = ["Steve","Bob","Ted"];
}

Чтобы отобразить это как таблицу, вы должны вернуть:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return [departments count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    NSArray *tmpEmployees= [[departments objectAtIndex:section] valueForKey:@"employees"];
    return [tmpEmployees count];

Важным является возвращение правильного количества для правильной части структуры данных. }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...