繁体   English   中英

如何在一个ViewClass中通知另一个View类

[英]How to in a viewClass notify another View class

我这样的第一个视图PageView.m

PageView.m

albumListView = [[AlbumListView alloc] initWithFrame:CGRectMake(0, 0, 45, 480)];
albumListView.tag = 1001;
[self addSubview:albumListView];
albumListView.hidden = YES;
[albumView release];

我想在我的CameraView移动时设置albumListView.hidden = NO。 怎么做!

CameraView.m

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}

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

假设创建CameraView实例的位置是PageView类,则可以执行以下操作:

在您的CameraView类中,定义如下协议:

@class CameraView;
@protocol CameraViewDelegate <NSObject>

@optional
- (void)cameraViewMoved:(CameraView *)view;
@end

然后,在同一类中实现一个属性来保存您的委托:

@property (nonatomic, assign) id<CameraViewDelegate> delegate;

在您要通知的情况下,在CameraView实现文件中,调用委托的cameraViewMoved方法,如下所示:

if ([self.delegate respondsToSelector:@selector(cameraViewMoved:)]) {
        [self.delegate cameraViewMoved:self];
}

通过将这样的CameraView放在PageView.h文件中,使PageView类成为CameraView的委托:

@interface PageView : <CameraViewDelegate>

在PageView.m类中,首先通过像cameraView.delegate = self;这样的方式将自己设置为cameraView的委托cameraView.delegate = self; 然后,实现协议方法cameraViewMoved 在此方法内部,您可以执行所需的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM