В DetailViewController.h
добавить свойство к объекту, которое указывает на MasterViewController.Вам также необходимо импортировать MasterViewController.h, например,
# import "MasterViewController"
...
@ property (nonatomic, retain) MasterViewController * mVc;
...
Не забудьте в DetailViewController.m
до @synthesize mVc;
Теперь в вашем pushDetailViewController
вы добавляете ссылку для объединения двух объектов
if (!self.detailViewController) {
self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
[self.detailViewController.mVc = self]; // New line
[self.navigationController pushViewController:self.detailViewController animated:YES];
Затем в DetailViewController вы ссылаетесь на объект
-(IBAction)nextItem{
[self.mVc pushDetailViewController:[NSIndexPath indexPathForRow:0 inSection:0]];
}
Я думаю, что другой проблемой, с которой вы сталкивались, было выделение новой версии mVC каждый раз, когда вы нажимаете кнопку nextItem.IOS с радостью позволит вам создавать множество объектов MasterViewController и будет создавать новый каждый раз, когда вы alloc
его.Вы просто хотели получить дескриптор вашего оригинального MasterViewController.
Другой подход - изучить использование parent
методов для ссылки на MasterViewController.Но я хотел показать вам, как сделать это с явным свойством, так как думал, что это будет понятнее.
Кроме того, это может решить, а может и не решить все ваши проблемы, но, надеюсь, по крайней мере покажет вам, как общаться с настоящим MasterViewController.