我用随机数据填充我的 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 保存到行补丁,或者我应该从显示名称中捕获一个 objectName 吗?