IBOutlet适用于iOS 6,但在iOS 4.3中是null吗?

时间:2012-12-05 16:06:01

标签: ios interface-builder

我有自己的tableview标题的自定义视图

UIView *headerTableview_;    
@property (nonatomic, retain) IBOutlet UIView *headerTableview;

我已将其连接到xib文件。

然后在.m文件中,

@synthesize headerTableview = headerTableview_;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
  return headerTableview_.frame.size.height;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
  return headerTableview_;
}

然后,我尝试运行它,在iOS 6中显示效果很好,但在iOS 4.3中,它根本没有显示。

可能是什么问题?任何人都知道如何解决这个奇怪的问题? 谢谢!

2 个答案:

答案 0 :(得分:0)

创建一个名为HeaderTableview的新类文件。在IB中分配时,查看是否正确初始化。

//.h
@class HeaderTableview;

@interface ViewController : UIViewController

@property (nonatomic, retain) IBOutlet HeaderTableview *headerTableview;

//.m
@synthesize headerTableview = _headerTableview;

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return _headerTableview.frame.size.height;
}

答案 1 :(得分:0)

在你的.h文件中

@interface testViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{

UITableView *tableView;
}
@property (retain, nonatomic) IBOutlet UIView *testView;
@end

在你的.m文件中

@implementation testViewController

@synthesize testView;
- (void)viewDidLoad
{
[super viewDidLoad];

tableView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource =self;
[self.view addSubview:tableView];
[self.view bringSubviewToFront:tableView];
// Do any additional setup after loading the view, typically from a nib.
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return testView.frame.size.height;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return testView;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 3;

}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Products";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];}
//UIImage *currentTweet = [[xmlParser tweets] objectAtIndex:1];
cell.textLabel.text= @"text label";
cell.detailTextLabel.text=@"detailTextLabel";

return cell;}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (void)dealloc {
[testView release];
[super dealloc];
}
@end

Attaching image of o/p from simulator iOS4.3.2