2013-07-31 2 views
0

Итак, я работаю над простым приложением, и у меня возникла небольшая проблема. У меня было рабочее приложение, и перед тем, как у меня появился табличный вид, который был встроен в контроллер навигации, и когда была выбрана ячейка, он переместился в следующее представление, где были показаны детали о выбранной строке. Я решил создать свою собственную ячейку и внедрил ее в свою программу, но теперь, когда нажимается любая строка, она не переходит в другое представление. Какие-нибудь советы? Существуют ли какие-либо методы, которые я должен добавить в свой собственный класс ячеек, чтобы снова работать с моим контроллером навигации?Создал пользовательскую ячейку, и теперь контроллер навигации не работает

ответ

0

В зависимости от того, как настроено ваше приложение, вы можете попробовать несколько вещей.

Во-первых, если в предыдущем коде была таблицаView: didSelectRowAtIndexPath: реализовано, вам нужно реализовать аналогичный код для создания представления деталей.

Во-вторых, если ваше приложение использует раскадровку, вам необходимо создать push/modal segue из вашей пользовательской ячейки в представление деталей.

Надеюсь, что это поможет.

0

Я тоже был этот вопрос:

Есть 3 способа сделать это с помощью пользовательского класса клеток. Во-первых, если вы не используете раскадровку, вы должны реализовать didSelectRowAtIndexPath, как и раньше, и было сказано. Я хочу уточнить два других способа.

Если вы используете раскадровку и вы создали свой собственный класс для ячейки вы можете:

1) Создайте файл .xib и поместить пользовательскую ячейку там.

Вы должны создать Segue путем перетаскивания cntrl из представления таблицы (ячейки прототипа NO) в следующий вид и предоставить ему идентификатор, в данном случае «mySegue». Затем выполните описанный ниже метод в контроллере табличного представления.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self performSegueWithIdentifier:@"mySegue" sender:self]; 
} 

2) Используйте прототип ячейки. В этом случае вы добавляете ячейку прототипа, выбирая представление таблицы и увеличивая количество прототипов ячеек до 1 и присваивая ему правильный идентификатор (в приведенном ниже примере это CellTableIdentifier, а затем заставляют прототип ячейки выглядеть так, как вы хотите, с метками и всеми. вы делаете выходы для ярлыков на свой класс ячеек так же, как и с вашим xib-файлом. Теперь ваш код чище, так как вам не нужен описанный выше метод. Вам просто нужно сделать тот же вызов, который должен быть во всем примере в метод cellForRowAtIndexPath ... мой выглядит следующим образом:

myTableViewCell *cell = (myTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellTableIdentifier 
forIndexPath:indexPath]; 

Тогда вы просто перетащить CNTRL от прототипа клетки к следующему представлению

.
Смежные вопросы