Перезагрузить дату от superview - PullRequest
0 голосов
/ 28 января 2012

У меня есть два представления, вызовы view1: [self.view addSubview:view2.view]; затем вызовы views2: [self.view removeFromSuperview];, и я хочу перезагрузить данные в view1, когда снова появится view1, но я не могу вызвать метод или обновить свойство view1, потому чтоне могу сделать #import "view1.h" в view2 (я сделал #import "view2.h" в view1).

Это мой код:

View1.h:

-(void)reloadData;

View1.m:

#import « View2.h » ; 
View2 *view2 = [[View2 alloc]init]; 
[self.view addSubview:view2.view]; 

View2.h:

#import « View1.h » 

View2.m:

// I want to call reloadData to reload Data of view1 before removing view2
[self.view removeFromSuperview];

1 Ответ

0 голосов
/ 28 января 2012

Если вы правильно реорганизуете свои файлы, вы можете импортировать view1 в view2 и наоборот. Вам нужно только поместить #import "view1.h" в view2.h, если вам нужен какой-либо контент прямо в файле .h. Если вам нужно только это в вашей реализации, вы можете с радостью переместить #import "view1.h" в свой файл view2.m и, таким образом, разрешить циклическую зависимость.

Обратите внимание, что во многих случаях вы можете пропустить импорт в файл .h, если это только для создания экземпляров / параметров типа. Например

#import "Another.h"

@interface Onething
@property (strong, nonatomic) Another *an;
@end

можно изменить на

@class Another;

@interface Onething
@property (strong, nonatomic) Another *an;
@end

Это в основном говорит компилятору, что есть вещь, называемая Another, но детали сейчас не важны. Затем вы можете позже #import "Another.h" в прилагаемом файле .m и работать как раньше.

...