Como passar dados de volta do controlador de exibição de detalhes para uitableview?
No meu aplicativo eu estou usando a utilidade para selecionar a categoria da minha lista. Minha tarefa é, sempre que o usuário clicar ou selecionar uma célula, ele poderá visualizar os detalhes da célula selecionada na próxima visualização (exibição detalhada). e quando ele seleciona o item em uma vista de detalhe, ele deve ser capaz de voltar em uma visualização de tabela e deve poder ver o item selecionado em um controlador rootivew.
Eu sou capaz de navegar corretamente de tableview para exibição de detalhes, mas eu não sou capaz de mostrar o item que é selecionado na exibição de detalhes para rootviewcontroller.
por favor me ajude com esse problema.
A imagem um é minha página de controlador de rootview. por exemplo: se o usuário selecionar @ "make", ele poderá ver toda a categoria releated de @ "make". na próxima página (qual imagem2).
imagem para é minha página de detalhes.
e quando o usuário selecionar @ "abarth", ele deve ser exibido em uma página do controlador do rootview (que é a página um).
a seguir está o meu código de página do controlador de rootview:
<code>- (void)viewDidLoad { self.car = [[NSArray alloc]initWithObjects:@"Make",@"Model",@"Price Min",@"Price Max",@"State",nil]; [super viewDidLoad]; } -(NSInteger) numberOfSectionInTableView:(UITableView *)tableView { return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.car count]; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *TextCellIdentifier = @"Cell"; UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:TextCellIdentifier]; if (cell==nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TextCellIdentifier]; cell.accessoryType = UITableViewCellAccessoryNone; cell.selectionStyle = UITableViewCellSelectionStyleNone; } cell.textLabel.text = [self.car objectAtIndex:[indexPath row]]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (0 == indexPath.row) { NSLog(@"0"); self.detailcontroller.title = @"Make"; } else if (1 == indexPath.row) { NSLog(@"1"); self.detailcontroller.title = @"Model"; } else if (2 == indexPath.row) { NSLog(@"2"); self.detailcontroller.title = @"Price Min"; } else if (3 == indexPath.row) { self.detailcontroller.title = @"Price Max"; } else if (4 == indexPath.row) { NSLog(@"3"); self.detailcontroller.title = @"State"; } [self.navigationController pushViewController:self.detailcontroller animated:YES]; } following is my detail view page code: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if ([self.title isEqualToString:@"Make"]) { detail = [[NSArray alloc]initWithObjects:@"Any Make",@"Abarth",@"AC",@"ADAYER",@"Adelaide",@"ALFA ROMEO",@"ALLARD",@"ALPINE-RENAULT",@"ALVIS",@"ARMSTRONG", @"ASTON MARTIN",@"AUDI",@"AUSTIN",@"AUSTIN HEALEY",@"Barossa",@"BEDFORD", @"BENTLEY",@"BERTONE",@"BMW",@"BOLWELL",@"BRISTOL",@"BUICK",@"BULLET", @"CADILLAC",@"CATERHAM",@"CHERY",@"CHEVROLET",@"CHRYSLER",@"CITROEN", @"Country Central",@"CSV",@"CUSTOM",@"DAEWOO",@"DAIHATSU",@"DAIMLER", @"DATSUN",@"DE TOMASO",@"DELOREAN",@"DODGE",@"ELFIN",@"ESSEX", @"EUNOS",@"EXCALIBUR",@"FERRARI",nil]; if ([self.title isEqualToString:@"Abarth"]) { detail = [[NSArray alloc]initWithObjects:@"HI", nil]; } } else if ([self.title isEqualToString:@"Model"]) { detail = [[NSArray alloc]initWithObjects:@"Any Model", nil]; } else if ([self.title isEqualToString:@"Price Min"]) { detail = [[NSArray alloc]initWithObjects:@"Min",@"$2,500", @"$5,000", @"$7,500", @"$10,000", @"$15,000", @"$20,000", @"$25,000", @"$30,000", @"$35,000", @"$40,000", @"$45,000", @"$50,000", @"$60,000", @"$70,000", @"$80,000", @"$90,000", @"$100,000", @"$500,000", @"$1,000,000",nil]; } else if ([self.title isEqualToString:@"Price Max"]) { detail = [[NSArray alloc]initWithObjects:@"Max", @"$2,500", @"$5,000", @"$7,500", @"$10,000", @"$15,000", @"$20,000", @"$25,000", @"$30,000", @"$35,000", @"$40,000", @"$45,000", @"$50,000", @"$60,000", @"$70,000", @"$80,000", @"$90,000", @"$100,000", @"$500,000", @"$1,000,000",nil]; } else if ([self.title isEqualToString:@"State"]) { detail = [[NSArray alloc]initWithObjects:@"Any State", @"Australian Capital Territory", @"New South Wales", @"Northern Territory", @"Queensland", @"South Australia", @"Tasmania", @"Victoria", @"Western Australia",nil]; } [self.tableView reloadData]; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [detail count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.textLabel.text = [detail objectAtIndex: [indexPath row]]; cell.font = [UIFont systemFontOfSize:14.0]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self.navigationController popViewControllerAnimated:YES]; } </code>