Ios 方法“;tableView:DidSelectedRowatineXpath“;在嵌入UIViewController的UITableView中
我有一个Ios 方法“;tableView:DidSelectedRowatineXpath“;在嵌入UIViewController的UITableView中,ios,uitableview,Ios,Uitableview,我有一个UITableView嵌入到UIViewController中,我已经完成了将列表显示到表视图中所需的所有步骤,这是可行的 我对下面的方法有一个问题,它看起来好像被调用了,但它返回的是null,而不是列表中的项 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"%@",[self.list objectAtIndex:indexP
UITableView
嵌入到UIViewController
中,我已经完成了将列表显示到表视图中所需的所有步骤,这是可行的
我对下面的方法有一个问题,它看起来好像被调用了,但它返回的是null
,而不是列表中的项
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%@",[self.list objectAtIndex:indexPath.row]);
}
谢谢大家的想法
Alessandro在代码下方,正确显示列表,以便设置出口和协议方法(委托、数据源) tableview:didSelectRowAtIndexPath方法:它输出(null)而不是列表中的正确元素
//
// MainViewController.m
// ProvaTable
//
// Created by Alessandro on 12/6/12.
// Copyright (c) 2012 Alessandro. All rights reserved.
//
#import "MainViewController.h"
@interface MainViewController ()
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (weak, nonatomic) NSArray *listOfObjects;
@end
@implementation MainViewController
@synthesize tableView = _tableView;
@synthesize listOfObjects = _listOfObjects;
-(void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.listOfObjects = [NSArray arrayWithObjects:@"Object 1",@"Object 2", nil];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.listOfObjects count];
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell Item";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
}
// Set up the cell...
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:15];
cell.textLabel.text = [self.listOfObjects objectAtIndex:indexPath.row];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%@",[self.listOfObjects objectAtIndex:indexPath.row]);
}
@结束然后将调试降低一个级别,例如,
indexPath.row是什么?是self.list
不是nil
?如果它是一个NSArray
,其中有多少项?您是否确认此方法实际上正在被调用?显然,这还不足以让我们诊断出发生了什么,但也显然需要做一些额外的诊断。但是这种方法没有明显的错误。顺便问一下,如果没有调用此方法,您是否将委托
和数据源
属性设置为指向此视图控制器?self.list是哪种类型?您的tableview样式是普通的还是分组的?完全同意@Rob。这是找到问题的最好方法。尝试这些步骤,让我们知道出现了什么。只是为了弄清楚-打印出(null)
?@konrad,是的,打印出的NSLog(null)实际上,可能在没有正确设置代理的情况下显示列表,因此,您应该确保实现UITableViewDelegate
,并设置表的委托。