Как да предам променлива от табличен изглед към втори табличен изглед?

Имам 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]];

В „глави“ получавам число, което трябва да предам на втория изглед на таблица, в зависимост от това кой втори изглед на таблица показва данни. Не знам дали последният ред зарежда "heads" в "num". Моят подход правилен ли е? Всяка помощ/препратка се оценява


person jason    schedule 19.12.2011    source източник
comment
какво е глави? също направете въпроса си по-ясен.   -  person Yama Puvar    schedule 19.12.2011
comment
heads е променлив масив (съдържащ просто цели числа)   -  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