1
尝试后2天,现在我失去了我的脑海里......最主要的问题很简单..我已经按钮的UIView ,,我想调用方法上的UIViewController ...这里的代码传递数据从UIView的到的UIViewController
的UIView调用headerView.h
@class HeaderView;
@protocol headerViewDelegate
- (void)tes:(HeaderView *)tes ratingDidChange:(float)rating;
@end
@interface HeaderView : UIView {
UIButton *test;
}
@property (nonatomic,strong) UIButton *test;
@property (assign) id <headerViewDelegate> delegate;
@end
和Headerview.M
#import "HeaderView.h"
#import <QuartzCore/QuartzCore.h>
@implementation HeaderView
@synthesize test;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame]; // not needed - thanks ddickison
if (self) {
test=[UIButton buttonWithType:UIButtonTypeRoundedRect];
test.frame=CGRectMake(30, 10, 100,40);
[test setTitle:@"Kampret" forState:UIControlStateNormal];
[test addTarget:self action:@selector(testdata:) forControlEvents:UIControlEventTouchUpInside];
}
[self addSubview:test];
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
}
return self;
}
- (void)dealloc {
[super dealloc];
}
-(void)layoutSubviews{
self.backgroundColor=[UIColor whiteColor];
[self release]; // release object before reassignment to avoid leak - thanks ddickison
//self = [nib objectAtIndex:0];
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowOffset = CGSizeMake(1.0, 1.0);
self.layer.shadowOpacity = 0.40;
}
-(void)testdata:(id)sender{
[self.delegate tes:self ratingDidChange:1.1f];
}
@end
viewcontroller.h
#import <UIKit/UIKit.h>
#import "HeaderView.h"
@interface ReusableTableHeadersViewController : UITableViewController <headerViewDelegate> {
HeaderView *header;
}
@property(nonatomic,strong) HeaderView *header;
@end
viewcontroller.m
#import "viewcontroller.h"
@implementation ReusableTableHeadersViewController
@synthesize header;
@synthesize tblData, data;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
header = [[HeaderView alloc] initWithFrame:CGRectMake(0, 0, 320, 120)];
[self.view addSubview:header];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
}
- (void)dealloc {
[super dealloc];
}
-(void)tes:(HeaderView *)tes ratingDidChange:(float)rating{
NSLog(@"passing data==========%f",rating);
}
@end
我要记录的评价: 的NSLog(@ “传送数据==========%F”,等级);
从方法:
-(void)testdata:(id)sender{
[self.delegate tes:self ratingDidChange:1.1f];
}
但它显示什么?为什么?因为我使用initwithframe?
不要怪我......我完全新手在这里:)
WHOOAAAAAAAA。逸超的答案...有试图2天是忘了把header.delegate =自我; ...感谢mannnnn – Netra
你应该接受这个答案 – achi
头泄漏内存 - 上方,并在原来的问题 – trapper