我是ios dev中的新手,我正在尝试使用Array of HCPerson类填充表视图。我也在玩,通过代码将nib中创建的对象引入故事板。但无论我做什么,表都没有填充
#import "HCTableViewController.h"
NSString *const HCTableCellNibName=@"HCTableCell";
NSString *const HCCellIdentifier=@"personCell";
@interface HCTableViewController()
@end
@implementation HCTableViewController
-(void)viewDidLoad
{
[super viewDidLoad];
[self.tableView registerNib:[UINib nibWithNibName:HCTableCellNibName bundle:nil] forCellReuseIdentifier:HCCellIdentifier];
}
-(NSInteger)tableView:(UITableView*)tableView numberOfRowInSection:(NSInteger)section
{
return self.persons.count;
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
UITableViewCell* cell=(UITableViewCell*)[self.tableView dequeueReusableCellWithIdentifier:HCCellIdentifier forIndexPath:indexPath];
HCPerson *person=self.persons[indexPath.row];
[self configureCell:cell forPerson:person];
return cell;
}
-(void)configureCell:(UITableViewCell*)cell forPerson:(HCPerson*)person
{
cell.textLabel.text=person.name;
cell.detailTextLabel.text=[[NSNumberFormatter alloc] stringFromNumber:person.age];
}
@end
//HCPerson
#import "HCPerson.h"
@interface HCPerson()
@end
@implementation HCPerson
+(HCPerson*)personWithName:(NSString*)name age:(NSNumber*)age residence:(NSString*)residence contact:(NSString *)contact
{
HCPerson *newPerson=[[self alloc] init];
newPerson.name=name;
newPerson.age=age;
newPerson.residence=residence;
newPerson.contact=contact;
return newPerson;
}
@end
编辑:Karthik使用UIViewController解决了这个问题,并从中取出了TableView。但有没有办法使用UITableViewController
调用委托和数据源方法答案 0 :(得分:1)
好吧,试试你的viewDidLoad
-(void)viewDidLoad
{
[super viewDidLoad];
[self.tableView registerNib:[UINib nibWithNibName:HCTableCellNibName bundle:nil] forCellReuseIdentifier:HCCellIdentifier];
if ( self.persons.count>0)
{
[self.yourtableview reloadData];
}
else
{
// no data found , put the NSLog and print the count
}
确定选择no-2
试试这个
UITableViewCell* cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:HCCellIdentifier forIndexPath:indexPath];
删除该self,因为它显示的是该方法。不是Tableview
,而是使用与tableView
不同的名称,因为Xcode
发现很难从中选择一个。
答案 1 :(得分:0)
您是否从故事板添加了表视图控制器? 如果是,请转到storyborad - > Inspector Area - > File Inspector - 在那里添加您的类名。