我用随机数据填充我的tableView。所以我不知道我有多少行以及如何将其重定向到我想要的屏幕。我填写了:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyClass *currentScreenElement = [self.tableRows objectAtIndex:indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:currentScreenElement.objectName];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:currentScreenElement.objectName];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = currentScreenElement.objectName;
return cell;
}
这很好用。我有一个填充行的tableView。现在我想重定向到新的屏幕,我这样做:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NewScreenClass *myScreen = [[NewScreenClass alloc] init];
self.detailViewController = [[CreateView alloc] initWithScreenDef:[myScreen returnScreenFromName:@"second"]];
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
当然我知道我在这里所做的是为每一行创建相同的屏幕。但是我怎样才能重定向到我想要的屏幕?
我的currentScreenElement
对象包含属性:objectName
(tableView中的显示名称)和objectTarget
(屏幕定义)。两个NSString。
我的问题是我应该以某种方式将我的currentScreenElement保存到行补丁中,或者我应该从dislay名称中捕获objectName吗?
答案 0 :(得分:3)
在didSelectRowAtIndexPath中,您可以使用
获取单元格UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
然后从单元格中获取文本。
cell.textLabel.text
答案 1 :(得分:1)
为什么不能再次使用self.tableRows数组?
MyClass *currentScreenElement = [self.tableRows objectAtIndex:indexPath.row];
NSString *title = [currentScreenElement objectName];
你设置那一行就是这样,只需再次使用它。