Что вы хотите сделать, это добавить свойство Какао в ваш контроллер основного представления, которое ссылается на экземпляр NSMutableArray
, который вы создаете и заполняете элементами.
В шапке:
@interface MainViewController : UIViewController {
NSMutableArray *myMutableArray;
}
@property (nonatomic, retain) NSMutableArray *myMutableArray;
@end
В реализации добавьте директиву @synthesize
и запомните release
массив в -dealloc
:
@implementation MainViewController
@synthesize myMutableArray;
...
- (void) dealloc {
[myMutableArray release];
[super dealloc];
}
@end
Вы также хотите добавить это свойство для просмотра контроллеров, которые подчинены контроллеру основного представления, точно таким же образом.
В вашем главном контроллере представления, когда вы готовы выдвинуть подчиненный контроллер представления, вы соответственно устанавливаете свойство подчиненного контроллера представления:
- (void) pushSubordinateViewController {
SubordinateViewController *subVC = [[SubordinateViewController alloc] initWithNibName:@"SubordinateViewController" bundle:nil];
subVC.myMutableArray = self.myMutableArray; // this sets the sub view controller's mutable array property
[self.navigationController pushViewController:subVC animated:YES];
[subVC release];
}
Аналогично, в вашем подчиненном контроллере представления он должен будет соответственно установить свойство изменяемого массива подчиненного, когда он выдвигает свой собственный контроллер представления.
Устанавливая ссылки таким образом, каждый контроллер представления указывает на один и тот же изменяемый массив, содержащий нужные элементы.
Чтобы использовать массив, просто позвоните self.myMutableArray
, например, [self.myMutableArray addObject:object]
.