Iphone 如何在一个视图类中通知另一个视图类

Iphone 如何在一个视图类中通知另一个视图类,iphone,objective-c,ios,cocoa-touch,Iphone,Objective C,Ios,Cocoa Touch,我的第一次浏览页面浏览我喜欢这样 PageView.m 我希望当我的CameraView移动时设置albumListView.hidden=NO。 怎么做 CameraView.m 如何使用委托或其他方式? 谢谢大家! 假设PageView类是创建CameraView实例的地方,您可以这样做: @class CameraView; @protocol CameraViewDelegate <NSObject> @optional - (void)cameraViewMoved:(C

我的第一次浏览页面浏览我喜欢这样

PageView.m

我希望当我的CameraView移动时设置albumListView.hidden=NO。 怎么做

CameraView.m

如何使用委托或其他方式?
谢谢大家!

假设
PageView
类是创建
CameraView
实例的地方,您可以这样做:

@class CameraView;
@protocol CameraViewDelegate <NSObject>

@optional
- (void)cameraViewMoved:(CameraView *)view;
@end
if ([self.delegate respondsToSelector:@selector(cameraViewMoved:)]) {
        [self.delegate cameraViewMoved:self];
}
CameraView
类中,定义如下协议:

@class CameraView;
@protocol CameraViewDelegate <NSObject>

@optional
- (void)cameraViewMoved:(CameraView *)view;
@end
if ([self.delegate respondsToSelector:@selector(cameraViewMoved:)]) {
        [self.delegate cameraViewMoved:self];
}
通过在PageView.h文件中像这样放置sthg,使您的
PageView
成为您的
CameraView
的a类代理:

@interface PageView : <CameraViewDelegate>
@界面页面视图:
在PageView.m类中,首先通过执行sthg,比如
cameraView.delegate=self,将自己设置为cameraView的代理
然后,实现协议方法
cameraViewMoved
。在这个方法中,您可以做您需要的事情。

并且不要忘记添加“@class CameraView”,这样您的编译器就知道您稍后将要实现CameraView(因为您在CameraView接口上方引用它,所以编译器还不知道什么是CameraView)。
@interface PageView : <CameraViewDelegate>