Передать свойство пользовательского UIBEATYViewcell до пункта назначения в методе Preparefersege

StackOverflow https://stackoverflow.com//questions/12675274

Вопрос

Я работаю над приложением для iPhone с помощью раскадровки.

У меня есть UiableView в UinavidationView.где я загружаю данные в пользовательских ячеек.И тогда я, когда пользователь нажимает на ячейку, я перехожу к другому представлению (RecventView).

Я настроил вид и сам в раскадровке.

Моя цель - передавать данные к результатам метода Prepareforsege.

Для этого я создал пользовательскую клетку, которая реализует UiableViewCell.И тогда я добавил свойство типа NSDate имени: TreateState.Мне нужно пройти дату создания выбранной ячейки к результатам. У меня есть следующие ate= cithcell.creationdate;

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"resultViewSegue"])
    {
        //Get a reference to the destination
        ResultsViewController * destinationView = segue.destinationViewController;

        //I try to get the selected cell in order to pass it's property
        historyCellClass * selectedCell = (historyCellClass*) sender;

        //pass the creation date to the destination view (it has its own creation date property)
        [destinationView setCreationDate:selectedCell.creationDate];
    }
}
.

Однако дата создания даты результата всегда ноль.

Похоже, я не получаю ссылку на выбранную ячейку, чтобы прочитать его свойство.

Как я могу пройти дату ячейки на следующий вид?

Большое спасибо для любой помощи

Это было полезно?

Решение

То, как я обработал, это с ручным запускам Segue и IVAR, представляющему состоянию выбора.

Убедитесь, что срабатывание в Segue идет с одного контроллера представления до следующего (не из одной из ячеек TableView).

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.selectedModel = [self.myModel objectAtIndex:indexPath:row];
    [self performSegueWithIdentifier:@"resultsViewSegue"];
.

ВыбранныеModel - это новый IVAR, тип которого такой же, как один элемент в массиве, который поддерживает создание таблицы.Посмотрите на это с помощью индекса Path именно так, как вы бы в CellForeatindexpath:.

сейчас в Prepareforgege: ..

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"resultViewSegue"])
    {
        //Get a reference to the destination
        ResultsViewController * destinationView = segue.destinationViewController;

        //pass the creation date to the destination view (it has its own creation date property)
        [destinationView setCreationDate:self.selectedModel.creationDate];

        // selectedModel.creation date might not be right... use whatever way you get to creationDate
        // from the indexPath in cellForRowAtIndex path, that's the code you want above.
    }
}
.

Есть несколько вариантов для того, чтобы сохранить между выбором обзора таблицы и началом Segue.Вы можете сохранить выбранный путь индекса, или элемент модели, как я предлагаю, или просто аспект модели, которую вы намереваетесь пройти вперед (TROVESTDATE в вашем E.G.).Единственная плохая идея для сохранения состояния - это сама клетка таблицы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top