В идеале вы никогда не должны получать доступ к каким-либо свойствам viewcontroller из представления.
Основная идея архитектуры MVC заключается в том, что viewcontroller сообщает своим представлениям, что отображать, а не наоборот.
Поэтому вам просто нужно предоставить все данные, которые нужны вашему представлению для рендеринга во время его инициализации:
- (void)loadView {
UIView *view = [[UIView alloc] init];
descriptionView = [[DescriptionView alloc] initWithFrame:CGRectMake(0, 130, 320, 237) paramDict: self.locationData]; descriptionView.hidden = NO;
[view addSubview:descriptionView];
[descriptionView release]; // BTW add this line here (or in dealloc) or you'll have a leak
self.view = view; [view release];
}
Если вам необходимо динамически обновлять представление, вам следует добавить некоторые методы в представление и вызвать их из viewcolnroller.
E.g.:
DescriptionView.m:
-(void) updateWithDict:(NSDictionary*) udict;
Если вам нужно выполнить некоторые действия при нажатии какой-либо кнопки в DescriptionView (или при любом другом взаимодействии с пользователем), хорошей идеей было бы объявить протокол, подобный DescriptionViewDelegate (или что-то в этом роде):
-(void) descriptionViewButton1Pressed:(DescriptionView*) dview;
-(void) descriptionViewButton2Pressed:(DescriptionView*) dview;
затем сделайте ваш CaseViewController делегатом и реализуйте там эти методы.