Ios 从superview重新加载日期

Ios 从superview重新加载日期,ios,objective-c,view,superview,Ios,Objective C,View,Superview,我有两个视图,view1调用:[self.view addSubview:view2.view]然后views2调用:[self.view removeFromSuperview]并且我想在view1重新出现时在view1中重新加载数据,但我无法调用方法或更新view1的属性,因为我无法在view2中创建#导入“view1.h”(我在view1中创建了#导入“view2.h”) 这是我的代码: 视图1.h: -(void)reloadData; 视图1.m: #import « View2.h

我有两个视图,view1调用:
[self.view addSubview:view2.view]
然后views2调用:
[self.view removeFromSuperview]并且我想在view1重新出现时在view1中重新加载数据,但我无法调用方法或更新view1的属性,因为我无法在view2中创建
#导入“view1.h”
(我在view1中创建了
#导入“view2.h”

这是我的代码:

视图1.h:

-(void)reloadData;
视图1.m:

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

#import « View1.h » 
视图2.m:

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

如果正确地重新组织文件,则可以在view2中导入view1,反之亦然。如果需要.h文件中的任何内容,只需将
#import“view1.h”
放在view2.h中。如果您只需要在实现中使用它,您可以在view2.m文件中愉快地移动
#导入“view1.h”
,从而解决循环依赖关系

请注意,在许多情况下,如果只是为了创建类型的实例/参数,则可以跳过导入.h文件。比如说

#import "Another.h"

@interface Onething
@property (strong, nonatomic) Another *an;
@end
可以改为

@class Another;

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

这基本上告诉编译器有一个东西叫做
other
,但是细节现在并不重要。然后,您可以稍后在附带的.m文件中导入“另一个.h”
,并像以前一样工作。

我不能调用[self.superview reloadData];在my view2中,但在view2的.m中导入效果良好。self.superview不工作为什么?它看不到superview,只有self.subclass…您可以向
view2
添加一个属性,该属性链接回
view1
@property(非原子,弱)view1*调用视图(如果不使用ARC,则将弱替换为赋值)。您可以在view1中将其设置为self,从而在view2中提供
self.callingView
。在view2.h中声明
@属性(非原子、弱)view1*callingView
(并在上面添加
@class view1;
)。创建view2(在view1.m中)时,现在可以附加
view2.callingView=self
。现在可以导入
“View1.h”
在view2.m和do
[self.callingView reloadData]
那里。我想我已经完成了,但我有一个:EXC\u BAD\u访问权限。这是我的代码: