UITableView в UIScrollview, несколько страниц и одно представление таблицы - PullRequest
1 голос
/ 02 марта 2012

У меня есть вопрос относительно UITableView внутри UIScrollView.

Это ситуация:

У меня есть ListViewController, который показывает несколько событий в UITableView. Если пользователи нажимают на событие, это событие отображается в каком-то элементе DetailViewController. Пока ничего страшного.

Дело в том, что клиент хочет иметь возможность провести пальцем вправо и влево, чтобы увидеть предыдущие и последующие события (в DetailViewController). И вот тут я немного борюсь.

Итак, я создал DetailViewController с UIScrollview, содержащим UITableView. Прокрутка работает, счетчик страниц работает, в моих ячейках есть жестко закодированные данные, пока все хорошо.

Моя проблема: данные из каждого события должны быть загружены и показаны в этом табличном представлении. Итак: если пользователь нажимает на Event1, все данные Event1 должны отображаться в виде таблицы. Когда пользователь проводит пальцем влево, данные из Event2 должны быть видны (в том же табличном виде). Повторите это для нескольких событий.

Как мне этого добиться?

Я пытался что-то подобное в CellForRowAtIndexPath:

if (pageControl.currentPage == 0) {
    cell.textLabel.text = @"Page 0"; //These will all be arrays in the future
}
else if (pageControl.currentPage == 1) {
    cell.textLabel.text = @"Page 1";
}
else if (pageControl.currentPage == 2) {
    cell.textLabel.text = @"Page 2";
}
else if (pageControl.currentPage == 3) {
    cell.textLabel.text = @"Page 3";
}    
else if (pageControl.currentPage == 4) {
    cell.textLabel.text = @"Page 4";
}

return cell;

Но это не работает, оно показывает мне страницу 0 в каждой ячейке. Странная вещь: если я потяну ячейку слишком высоко или низко (так что она больше не видна), ячейка покажет мне правильное значение. Я сделал видео об этом, это довольно сложно объяснить. Видео: http://cl.ly/EgfB

Я пытался вызвать reloadData, но это тоже не сработало.

Возможно ли это даже без создания таблицы для каждого события?

Кстати: я пробовал PanelTableView , но мне было очень трудно заставить эту штуку работать, поэтому я бы предпочел сделать это без.

1 Ответ

0 голосов
/ 02 марта 2012

Вы можете попробовать передать источник данных таблицы в detailViewController, а также сообщить ему текущее событие для отображения. Пользовательская функция инициализации может быть реализована в detailViewController

- (id) initWithEvent: (NSInteger) eventNum dataSource: (NSArray*) dSource
{
    if(self = [super initWithNibName: @"detailViewController" bundle: nil])
    {
        self.dataSource = dSource;
        self.currentEvent = eventNum;
    }
    return self;
}

Затем выберите правильное событие, проиндексировав источник данных.

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