Попробуйте следующее
В дочернем представлении определите протокол
// childViewController.h
@protocol ChildDelegate;
@interface childViewController
{
id <ChildDelegate> delegate;
}
@property (nonatomic, weak) id <ChildDelegate> delegate;
@end // interface
@protocol ChildDelegate <NSObject>
- (void) selectedData: (NSString*) text;
@end
Отправка данных, когда пользователь выбирает ячейку
// childViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
...
// send info the mainViewController
[self.delegate selectedData: (NSString*) [dataSource objectAtIndex: indexPath.row]];
}
В mainViewController реализуйте этот протокол
- (void) selectedData: (NSString*) text
{
// retrieve current selected row, and update with text.
}
// не забудьте установить делегат при создании childViewController
child = // create child
child.delegate = self;
// save currently selected row
// push childViewController
Надеюсь, это поможет.