我正在构建一个小应用程序,我在TableView中显示一个数组。问题是我不想使用UITableViewController,我只想使用ViewController。当我在模拟器中运行应用程序时,它不显示数组。这是代码:
.h
@interface ViewController : UIViewController{
IBOutlet UITableView *table;
NSArray *array;
}
.m
- (void)viewDidLoad
{
[super viewDidLoad];
array =[NSArray arrayWithObjects:@"iPad",@"iTV" ,nil];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [array count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.textLabel.text = [array objectAtIndex:indexPath.row];
return cell;
}
请不要回答这个说我必须使用UITableViewController。我知道可以在没有它的情况下管理它,只需使用ViewController即可。不管怎样,谢谢你!
答案 0 :(得分:2)
定义您的界面
@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
IBOutlet UITableView *table;
NSArray *array;
}
并将table
的{{1}}和delegate
插座设置为dataSource
,将File's owner
的课程设置为xib中的File's owner
。< / p>
首先浏览项目,单击视图控制器的xib文件。然后从对象列表中选择表视图。在这种情况下,可能需要额外考虑:
如果您已经使用UITableViewController创建了xib,则需要对其进行修改以适合UIViewController。请记住,UIViewController子类实例显示为File的所有者对象。您需要确保有一个顶级的UIView对象,它不会被添加为任何其他视图的子视图,并且UIView中有一个UITableView。
UIView应该有一个引用插座:view - 文件的所有者。如果没有,请从ViewController
的白色圆圈拖到New Referencing Outlet
,释放鼠标,然后点击File's Owner
。
对于表格视图,点击并拖动view
,然后转到文件所有者,然后点击New Referencing Outlet
,然后从table
,dataSource
拖放,然后转到文件所有者,分别为。
答案 1 :(得分:0)
您必须遵循TableViewDelegate协议... [http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html]