Когда вы вызываете "executeSegueWithIdentifier: sender:" вместо передачи self отправителю, передайте необходимую информацию позже (то есть, indexPath или объект вашей модели, представленный indexPath)
Позже в prepareForSegue (внутри вашего if) вы можете привести параметр sender к объекту, который вы передали ранее, и вы можете получить контроллер представления назначения с помощью
[segue destinationViewController];
На этом этапе вы можете установить в вашем целевом контроллере некоторые свойства (например, изображения и т. Д.) ..
Итак ...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"DetailGrandComptes" sender:indexPath];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"DetailGrandComptes"])
{
MyViewController *destination = [segue destinationViewController];
NSIndexPath * indexPath = (NSIndexPath*)sender;
destination.imageName = [[detailRow objectAtIndex:indexPath.row] valueForKey:@"image"]
destination.nameString = ....
}
РЕДАКТИРОВАТЬ: Ваш класс "DetailGrandComptes" должен иметь свойства или ivav вам нужно!
Итак ... если вам нужны метка и изображение, ваш класс должен выглядеть следующим образом:
@interface DetailGrandComptes : UIViewController
@property (strong, nonatomic) NSString *imageName;
@property (strong, nonatomic) NSString *nameString;
@end
//in you .m
@interface DetailGrandComptes()
@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UILabel *name;
@end
@implementation DetailGrandComptes
- (void)viewWillAppear
{
[super viewWillAppear];
name.text = nameString;
image.image = [UIImage imageNamed:imageName];
}
@end