我在ViewController中声明了一个数组,并在表视图中显示它。我从EditViewController传递数组的值。但是这些值不会在表格视图中显示。我正在使用以下代码。
ViewController.h
@property (nonatomic, strong) NSMutableArray *tableData;
ViewController.m
viewDidLoad中:
tableData = [NSMutableArray arrayWithObjects:@"",nil];
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
return cell;
}
EditViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
ViewController *vc;
vc = [segue destinationViewController];
NSString *str = [NSString stringWithFormat:@"%ld", selectedRow];
[vc.tableData addObject:str];
}
请建议。
答案 0 :(得分:1)
如果tableview本身没有数据,请点击
处的断点 cellForRowAtIndexPath,
并且如果dsnt遇到断点,请将tableview的Delegate和Data源与View Controller连接。
[编辑] 如果仍未调用,请转到storyboard,检查tableview的边界是否超过vc的边界,这意味着,检查tableview是否在视图控制器内,并且tableview的任何部分都没有越过边界视图控制器。
答案 1 :(得分:1)
在editViewController的viewDidLOad
中将委托和数据源连接到self tableView.delegete=self;
tableView.Datasource=self;
答案 2 :(得分:0)
您要将字符串添加到未分配的nsarray对象。 你必须用string创建nssarray并传递给vc.tableData。
答案 3 :(得分:0)
这可能有一些问题。
首先,最好将NSMutableArray属性“tableData”设置为在segue期间传入的现有数组。现在你要将一个字符串添加到一个可变数组中,除非你为ViewController编写了一个自定义初始化程序,你在其中分配初始化NSMutableArray,它才能存在,直到执行segue之后的ViewDidLoad,所以你把字符串传递给了“nil”的黑暗深渊。
最好在prepareForSegue中使用基类型作为接收属性,然后在您的情况下将EditController的数组从EditViewController传递给已存在的数组。
此外,您可能无法告诉视图控制器实际创建了多少个单元格。确保numberOfSectionsInTableView返回一个值(在这种情况下只是1),并且numberOfRowsInSection返回“[self.tableData count]”。
如果你没有创建继承自UITableViewController的ViewController,你需要设置它,并像Light Yagami指出的那样在故事板中手动连接委托和数据源。虽然创建一个继承自UITableViewController的新自定义类文件可能会更容易,因为它会为您提供一些很好的样板代码。
并确保在您的故事板中,您的TableViewController类被设置为您的自定义类文件。
答案 4 :(得分:0)
Plz确保你有
-tableView:numberOfRowsInSection:
方法定义。此方法应返回大于 0 的值,以便
-tableView:cellForRowAtIndexPath:
被召唤。
答案 5 :(得分:0)
我希望你没有将numberOfSectionsInTableView传递为0.请检查一次。必须根据要求为1或更多。对于numberOfRowsInSection也一样。
答案 6 :(得分:0)
从
中删除此行ViewDidLoad
方法
tableData = [NSMutableArray arrayWithObjects:@"",nil];