唯一的问题是我怎么告诉我的 子类,它应该会收到 委托?我没有在我的子类中的我的 视图控制器的实例,所以我可以 未设置委托。
MyUIView.h:
@protocol MyUIViewDelegate;
@interface MyUIView : UIView
{
...
id<MyUIViewDelegate> delegate;
...
}
...
@property (nonatomic, assign) id<MyUIViewDelegate> delegate;
...
@end
@protocol MyUIViewDelegate <NSObject>
- (void)myUIViewDidFinish:(MyUIView*)myUIView;
@end
MyUIView.m:
...
@synthesize delegate;
...
- (void)dismiss
{
[delegate myUIViewDidFinish:self];
}
MyUIViewController.h:
#import "MyUIView.h"
@interface MyUIViewController : UIViewController <MyUIViewDelegate>
{
...
MyUIView* myOverlay;
...
}
...
@property (nonatomic, retain) IBOutlet MyUIView* myOverlay;
...
@end
MyUIViewController.m:
...
@synthesize myOverlay;
...
- (void)dealloc
{
...
[myOverlay release];
...
[super dealloc];
}
...
- (void)viewDidLoad
{
[super viewDidLoad];
...
myOverlay.delegate = self;
...
}
...
- (void)showMyUIView
{
// ... show myOverlay ...
}
...
#pragma mark MyUIViewDelegate Methods
- (void)myUIViewDidFinish:(MyUIView*)myUIView
{
// ... hide myOverlay ...
}
首先:感谢您的工作:)!到目前为止,我正在理解你的工作。但是,如果我使MyUIView的多个实例如何呢? 我想让数量与数量一样多。 所以我不能在@interface中设置它们全部? – rdesign 2010-03-24 19:38:48