我在stackoverflow上搜索并搜索了这些内容,但未能找到解决方案。
我期待发生的事情: UITableView显示并显示包含“hi”的单元格
会发生什么: UITableView甚至无法显示
viewViewController.h
#import <UIKit/UIKit.h>
@interface viewViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITableView *tableView;
//note: the above property is connected to my UITableViewController
@end
viewViewController.m
#import "viewViewController.h"
@interface viewViewController ()
@end
@implementation viewViewController
@synthesize tableView = _tableView;
- (UITableView *)tableView
{
if (!_tableView){
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
}
return _tableView;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//_tableView = [[UITableView alloc] init];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
//[self setTableView:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
//warning Potentially incomplete method implementation.
// Return the number of sections.
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"asking for rows");
//#warning Incomplete method implementation.
// Return the number of rows in the section.
switch (section)
{
case 0:
return 5;
case 1:
return 10;
break;
default:
return 0;
break;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
cell.textLabel.text = @"hi";
return cell;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"testtext";
}
@end
请告诉我我做错了什么并纠正我的代码。
答案 0 :(得分:5)
向视图控制器添加一些协议:
@interface viewViewController:UIViewController
检查以确保您将delegate
和datasource
属性从tableView
连接到文件所有者。
答案 1 :(得分:1)
UITableView连接到您的实例变量的意思并不清楚。如果您的意思是从XIB接线,那么您可能会从您创建的重写的getter方法中获得“干扰”。您可能希望放置一个NSlog以查看是否正在调用该方法。如果是这种情况,您分配/邀请的新表视图的框架大小为零,我在代码中没有看到您更改框架大小的任何内容。
祝你好运!答案 2 :(得分:0)
尝试继承UITableViewController而不是UIViewController。