У меня есть контроллер вида, который создает 2 контроллера вида внутри него.Внутри каждого из этих дочерних контроллеров я хотел создать свойство, которое было бы общедоступным и доступным из родительского контроллера.
Я использую следующий метод
TableViewController.h
@interface TableViewController : UITableViewController {
NSInteger projectId;
}
@property NSInteger projectId;
TableViewController.m
@implementation TableViewController
@synthesize projectId;
...
@end
Затем я ожидал, что родительский контроллер представления сможет создать дочерний элемент и получить доступ к переменной parentId:
ParentViewController.h
#import "TableViewController.h"
@interface ParentViewController : UIViewController {
TableViewController* tableViewController;
}
@property (nonatomic, retain) TableViewController* tableViewController;
ParentViewController.m
@implementation ParentViewController
- (void)viewDidLoad {
self.tableViewController = [[TableViewController alloc] initWithNibName:@"TableViewController" bundle:nil];
self.tableViewController.projectId = 100;
}
Однако свойство projectId
не являетсянайден и возвращает ошибку - Запросите идентификатор 'projectId' в чем-то, что не является структурой или объединением.
Если я изменю строку
self.tableViewController.projectId = 100;
на
[self.tableViewController setProjectId:100];
Я получаю предупреждение - TableViewController может не отвечать на '-setProjectId'
Я компилирую это в предварительном просмотре 2 XCode 4, но у меня есть такая же проблема в XCode 3.2
Яочевидно пропускает что-то очевидное, но не может понять, что это такое.
Почему я не могу получить доступ к этому свойству?