Сначала создайте свойство в вашем классе RootViewController для переменной массива.Например, если переменная вашего массива называется myArray, ваш код может выглядеть примерно так:
В RootViewController.h:
#import <UIKit/UIKit.h>
@interface RootViewController : UITableViewController {
NSArray *myArray;
}
@property (nonatomic, retain) NSArray *myArray;
@end
и добавьте соответствующую строку @synthesize в RootViewController.m:
#import "RootViewController.h"
@implementation RootViewController
@synthesize myArray;
// methods here
@end
Теперь вы можете установить член myArray объекта RootViewController следующим образом:
myRootViewController.myArray = [NSArray arrayWithObjects:@"foo", @"bar", nil];
Теперь в классе делегата приложения вы можете использовать свойство viewControllers self.navigationController длявернуть контроллеры представления в стек навигации.Корневой контроллер всегда будет иметь индекс 0. viewControllers будет возвращать NSArray, элементы которого имеют тип NSObject, поэтому вам также необходимо привести к указателю RootViewController.Вот это в двух строках, чтобы сделать приведение явным:
// get a pointer to the root view controller
id obj = [self.navigationController.viewControllers objectAtIndex:0];
// cast it to a RootViewController pointer
RootViewController* rvc = (RootViewController*)obj;
// Now you can set the array
rvc.myArray = someArray;
(Чтобы использовать имя класса RootViewController в вашем классе делегата приложения, вам нужно импортировать соответствующий файл заголовка - поместите это вначало TableViewAppDelegate.m:
#import "RootViewController.h"
И это все!
ps Имейте в виду, что объявление свойства myArray как типа (nonatomic, retain) означает, что ваш объект RootViewController завершитсяуказывая на тот же экземпляр NSArray , который вы передаете ему. Так, например:
NSMutableArray *array = [NSMutableArray arrayWithObjects: @"foo", @"bar", nil];
myRootViewController.myArray = array;
[array removeAllObjects]; // myRootViewController.myArray is now empty!
Вместо этого вы можете использовать (nonatomic, copy), и в этом случае ваш объект RootViewController будетсоздайте копию массива, который вы передаете, и сохраните его вместо этого. Изменения в массиве после того, как вы присвоили его объекту RootViewController, не повлияют на копию.