Как в viewClass уведомить другой класс View - PullRequest
0 голосов
/ 12 декабря 2011

Мой первый просмотр 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
{
}

Как использовать делегат или другие способы? Спасибо!

1 Ответ

1 голос
/ 12 декабря 2011

Предполагая, что класс PageView - это место, где создается экземпляр CameraView, вы можете выполнить sthg следующим образом:

В вашем классе 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];
}

Сделайте ваш PageView класс делегатом вашего CameraView, поместив в файл PageView.h такой код:

@interface PageView : <CameraViewDelegate>

А в классе PageView.m сначала установите себя в качестве делегата вашего cameraView, выполнив команду sthg наподобие cameraView.delegate = self; Затем реализуйте метод протокола cameraViewMoved. Внутри этого метода вы можете делать то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...