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