Как передать переменную из таблицы во вторую таблицу?

У меня есть TableViewController с x строками. Когда пользователь нажимает на одну строку, я хочу передать второму tableViewController переменную, которая будет определять, какие данные должен загружать второй tableViewController. Как бы я это сделал?

Я использую Xcode 4.2, раскадровка здесь код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *__strong)indexPath
{
    // Navigation logic may go here. Create and push another view controller.

    TestTable *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"TestTable"];

    [self.navigationController pushViewController:detail animated: YES];

    detail.num = [NSString stringWithFormat:[heads objectAtIndex:indexPath.row]];

В «головах» я получаю число, которое я должен передать второму табличному представлению, в зависимости от того, какое второе табличное представление показывает данные. Не знаю, загружает ли последняя строка «головы» в «число». Верен ли мой подход? Любая помощь/ссылка приветствуется


person jason    schedule 19.12.2011    source источник
comment
что такое головы? также сделайте свой вопрос более ясным.   -  person Yama Puvar    schedule 19.12.2011
comment
головки - это изменяемый массив (содержащий просто целые числа)   -  person jason    schedule 19.12.2011
comment
cell.textLabel.text = [heads objectAtIndex: indexPath.row];   -  person jason    schedule 19.12.2011
comment
heads is a mutable array(containing simply integers) — можем ли мы предположить, что вы имеете в виду NSNumbers, а не только целые числа?   -  person deanWombourne    schedule 19.12.2011


Ответы (2)


Дайте вашей TestTable свойство для переменной, которую вы хотите вставить, например.

@property (retain, nonatomic) NSNumber *myNumber;

в вашем didSelectRowAtIndexPath назначьте его так:

TestTable *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"TestTable"];

// this assumes that you only have one section in your table
detail.myNumber = [NSNumber numberWithDouble:[heads objectAtIndex:indexPath.row]];

[self.navigationController pushViewController:detail animated: YES];

detail.num = [NSString stringWithFormat:[heads objectAtIndex:indexPath.row]];

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

double d = [self.myNumber doubleValue];
person Marko    schedule 19.12.2011
comment
Отредактировал ответ, чтобы включить использование в целевую таблицу. - person Marko; 19.12.2011

person    schedule
comment
ошибка в моем коде заключалась в том, что я должен был передать переменную перед командой push, которую я не сделал. Также обратите внимание на значение intValue, которое я использовал в новом коде. - person jason; 28.12.2011