В этом примере tableDataSource
является NSArray
, который может быть доступен как свойство класса.
В вашей interface
декларации (iPadTableWithDetailsViewController.h
):
@interface iPadTableWithDetailsViewController : UIViewController {
NSArray *tableDataSource;
}
@property (nonatomic, retain) NSArray *tableDataSource;
Тогда в вашем implementation
определении (iPadTableWithDetailsViewController.m
):
#import "iPadTableWithDetailsViewController.h"
@implementation iPadTableWithDetailsViewController
@synthesize tableDataSource;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
self.tableDataSource = nil;
}
return self;
}
- (void)viewDidLoad {
if (!tableDataSource) {
self.tableDataSource = [NSArray array];
}
}
.....
@end
И тогда вы можете получить доступ к этому из другого класса, как это:
- (void)doSomething {
iPadTableWithDetailsViewController *myViewController = [[iPadTableWithDetailsViewController alloc] initWithNibName:@"iPadTableWithDetailsViewController" bundle:nil];
myViewController.tableDataSource = [NSArray arrayWithObjects:@"object1", @"object2", nil];
NSLog(@"myViewController.tableDataSource: %@", [myViewController.tableDataSource description];
}
Подробнее g ООД информация и примеры:
Properties in Objective-C
Tutorial: Using Properties in Objective-C
cocoadevcentral learn objective-c
Что делает этот метод делать '- (ID) initWithNibName: (NSString *) nibNameOrNil расслоение: (NSBundle *) nibBundleOrNil'? – Dexter
Инициализирует пользовательский подкласс 'UIViewController'. Я предлагаю вам создать шаблонный проект в Xcode и прочитать комментарии и примеры, там есть много хорошей информации. – chown