Yes, you would use a delegate method to pass the data back to the parent. Since you are using some kind of array datasource to populate the table, you already have access to those values in a clean format (instead of pulling from the tableViewCell's hierarchy).
From your table vc:
@protocol MyTableViewDelegate
-(void)didSelectText:(NSString *)text;
@end
then implement the -didSelectText:
in your parent VC.
When the user selects the cell, you will have the indexPath, which gives you a section and row.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// It's good practice to do this check first
if([self.delegate respondsToSelector:@selector(didSelectText:)]){
//basically pull the value out of your data source and send it to the delegate
[self.delegate didSelectText: self.arrayDataSource[indexPath.section][indexPath.row]];
[self dismissViewControllerAnimated:YES completion:nil];
}
}