Проблемы с подключением контроллера на основе вкладок - PullRequest
0 голосов
/ 15 июля 2010

У меня есть проблема.

У меня есть код, который читает в RSS-каналах, на основе его навигации.

RssFunViewController -> это представление для таблицы (список каналов)

NewsDetailViewController -> показывает дополнительную информацию о новостной ленте, выбранной пользователем (в новом представлении).

Но когда я пытаюсь использовать его в навигационном проекте на основе вкладок, он не работает. Я просто получаю таблицу RSS-каналов. Когда я нажимаю на элемент, я не вижу подробного представления.

Я думаю, что моя проблема в связи с контроллером вкладок и моими классами.

Для моей 3-й вкладки навигации я установил RssFunViewController в качестве класса.

У меня вопрос, как мне соединить мои RSSFunViewController и NewsDetailViewController, чтобы, когда пользователь щелкает элемент, я вижу подробный вид.

Вот мои текущие соединения в контроллере вкладок: www.freeimagehosting.net/uploads/535e439c7f.jpg

Спасибо всем.

1 Ответ

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

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

Хотя информация, которую вы предоставляете, очень ограничена, вот краткое описание того, как можно обрабатывать действие нажатия таблицы.

В таблице должен быть свой делегат и источник данных, связанный с нужным классом (может быть, но не обязательно должен быть того же класса).

Класс делегата должен содержать метод

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

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

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

NewsDetailViewController *ndvc = [[NewsDetailViewController alloc] autorelease];
ndvc.delegate = self;
[ndvc setFeedId:indexPath.row];
[ndvc initWithNibName:@"NewsDetailViewController" bundle:nil];
[self.navigationController pushViewController:ndvc animated:YES];

(при условии, что у NewsDetailViewController будет метод setFeedId и т. Д.)

или вы можете создать экземпляр NewsDetailViewController в вашем файле пера, чтобы вы могли пропустить шаги alloc и initWithNibName и поместить "IBOutlet NewsDetailViewController * ndvc;" в заголовочном файле, чтобы вы могли подключить их.

Чтобы убрать выделение из коснувшегося ряда, выполните

[tableView deselectRowAtIndexPath:indexPath animated:YES];

Если вы работаете над поставляемым проектом, вы сможете найти такие строки, которые уже лежат. Удачи.

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