Рекурсивные Табличные Представления в Раскадровках iOS 4.2 - PullRequest
8 голосов
/ 19 октября 2011

Я хочу настроить рекурсивное представление таблицы в раскадровке. Под рекурсивным я имею в виду, что вы щелкаете по элементу в TableView, и он загружает новый экземпляр Table View, просто с новыми отображаемыми данными. Таким образом, я могу повторно использовать ячейки табличного представления и логику, содержащуюся в контроллере табличного представления. Мои данные в массивах массивов массивов ...

Единственный обходной путь, который я могу найти, - это установить для вас контроллер навигации, у которого мой контроллер табличного представления является корневым контроллером представления, а затем использовать этот Push еще один экземпляр моего контроллера табличного представления. Затем этот второй контроллер табличного представления выдвигает исходный контроллер табличного представления, и у меня есть мои рекурсивные контроллеры табличного представления. Я просто пытаюсь устранить дублирование контроллера табличного представления (хотя это только один раз).

Спасибо

Изображение для справки о том, что у меня есть enter image description here

Ответы [ 5 ]

4 голосов
/ 17 ноября 2011

Я тоже пытался сделать что-то подобное. Я подключил Прототип ячейки к переходу, уменьшив масштаб до более высокого уровня, как на скриншоте, затем щелкнув правой кнопкой мыши по ячейке и перетащив вниз в TableView. Это дало мне обычные варианты перехода.

4 голосов
/ 23 ноября 2011

Если развернуть представление «Структура документа» в левой части редактора раскадровки, вы можете перетаскивать элементы управления из ячейки таблицы в тот же контроллер представления, в котором находится ячейка таблицы.

2 голосов
/ 02 июля 2014

Для этого вам нужно забыть о переходе на раскадровку, указывающую на себя. Просто используйте делегированный метод didSelectRowAtIndexPath, управляйте своими данными в нем, создайте свой viewcontroller и вставьте стек табличного представления. Инициируйте следующее представление с prepareForSegue.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //initiate you new array
    self.arrayForNewView = someArray;
    //Now it's important that you give your table view controller in the identity inspector a Storyboard ID. In this case "MyGenericTableViewController"
    UIViewController *myController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyGenericTableViewController"];
    [self.navigationController pushViewController: myController animated:YES];

}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    //set data source next generic table view controller
    MyGenericTableViewController *vc = [segue destinationViewController];
    vc.dataSource = self.arrayForNewView;
}
1 голос
/ 21 октября 2011

Я не вижу причин, по которым вы не можете спроектировать свою раскадровку для использования того же подкласса UITableViewController, который будет использоваться рекурсивно.Просто спроектируйте раскадровку как таковую, а затем используйте prepareForSegue: метод, чтобы передать выбор следующему экземпляру контроллера.

Вы пробовали это безуспешно?С какими проблемами вы столкнулись?

0 голосов
/ 29 мая 2014

У меня была похожая ситуация, когда я задавал пользователю кучу вопросов один за другим.То, что я сделал, это поместил кнопку «Далее» со своим собственным действием в ВК, а затем в этом методе действия создал тот же ВК для следующего вопроса с подробностями следующего вопроса.Конечно, первый вопрос - это сам VC, затем каждый последующий вопрос - это еще один экземпляр VC.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard_iPhone" bundle:nil];
QuestionTableViewController *nextVC = [storyboard instantiateViewControllerWithIdentifier:@"QuestionTableViewController"];

[self.navigationController pushViewController:nextVC animated:NO];

Обратите внимание на НЕТ для анимированных.Кажется, что раскрутка создаст вам проблемы, если вы скажете ДА.Я еще не понял этого.

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

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