Как увеличить выбранную строку таблицы на iPhone

Если бы кто-то смог помочь мне со следующим, это было бы здорово!

Итак, вот что я пытаюсь сделать. Мое приложение в основном RSS-ридер. Темы записей RSS отображаются в виде таблицы. При нажатии на запись открывается веб-представление, в котором отображается вся история. К этому веб-представлению я добавил панель инструментов со стрелками вверх и вниз, чтобы пользователь мог перейти к следующей/предыдущей истории, не выходя из веб-представления и не нажимая другую запись в таблице. Моя проблема в том, что я понятия не имею, как это архивировать. Возможно, это связано со структурой моего приложения. Я предполагаю, что мне нужно как-то увеличить выбранную строку при нажатии кнопки.

Как я уже сказал, код может быть немного сложным, поэтому я разместил весь проект здесь: http://www.schimanke.com/flo.zip Было бы здорово, если бы кто-нибудь посмотрел и сказал мне, что делать.


person Community    schedule 27.09.2009    source источник


Ответы (1)


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

int row = [mainModel.blogEntries indexOfObject:mainModel.selectedBlogEntry];

Так что все, что вам нужно после этого, это показать следующую (или предыдущую) запись. Судя по вашему коду, это выглядит так:

- (void) showNextPrevEntry:(int)increment usingTheOldController:(BlogEntryController *)controller {

    int row = [mainModel.blogEntries indexOfObject:mainModel.selectedBlogEntry];
    if (row+increment<[mainModel.blogEntries count] && row+increment>=0) {
        mainModel.selectedBlogEntry = [ mainModel.blogEntries objectAtIndex:row+increment];
        controller.mainModel = mainModel;
        [controller viewDidLoad];
    }

}

Я не думаю, что правильно вызывать viewDidLoad. Возможно, вам нужен другой метод только для обновления текущего загруженного представления и вызовите его из вашего viewDidLoad. Также я не уверен, почему вы используете уведомления для обработки нажатий кнопок на панели инструментов, но это работает. :)

person leolobato    schedule 27.09.2009