pushViewController не толкает - PullRequest
       27

pushViewController не толкает

0 голосов
/ 18 декабря 2011

Я использовал initWithNibName, чтобы выдвинуть ячейки в подробные представления, но я хочу использовать одну раскадровку вместо того, чтобы иметь множество файлов пера.Приведенный ниже код должен выдвигать представление в subcategoriesViewController при нажатии на ячейку.клетки являются динамическими из данных JSON.

Это не дает никаких ошибок.Как вы думаете, это проблема с управлением навигацией?Просто чтобы проверить, я добавил кнопку в этом представлении, и она работает;когда я нажимаю на него, он переходит к следующему виду.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSDictionary *dict = [rows objectAtIndex: indexPath.row];


    subcategoriesViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"subcategoriesViewController"];
    controller.CATNAME = [dict objectForKey:@"C_NAME"];
    controller.CATNUMBER = [dict objectForKey:@"CAT_ID"];
    [self.navigationController pushViewController:controller animated:YES];
//    [controller release];
}

Хорошо, я думаю, что нашел причину;но не знаю, как это исправить.

Представление таблицы в этом контроллере на самом деле является подпредставлением viewController.Я продублировал эти файлы и создал новое представление, которое представляет собой TableViewController.Этот код, когда он используется в TableViewController, выполняет свою работу, но не делает этого, когда используется в контроллере, где tableview является подпредставлением ViewController.

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

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

Она не ссылается на таблицу в представлении.Может кто-нибудь сказать мне, как это изменить, чтобы он ссылался на таблицу в представлении?

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Если didSelectRow... не вызывается, то ваш контроллер представления, вероятно, не установлен в качестве делегата вашего табличного представления.

Это настраивается автоматически при использовании UITableViewController, но вы должны явно сделать это при использовании стандартного контроллера представления.

0 голосов
/ 18 декабря 2011

Ответом на вашу проблему часто является то, что self.navigationController на самом деле nil, потому что для вашего обзора нет навигационного контроллера. Возможно, вам придется получить указатель на навигационный контроллер вашего проекта и нажать на него.

...