0

有人可以告诉我如何使用情节提要为表格视图元素分配界面吗?我正在制作一个医疗计算器,它对每个方程都有不同的计算器,我需要帮助制作将元素指向另一个界面的代码。这是因为对于每个方程,需要填写不同的字段(例如年龄、氧气水平、是否患有糖尿病、身高等)。并非每个方程都需要相同的字段。

我试过这样做:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Deselect row
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // Declare the view controller
    UIViewController *anotherVC = nil;

    // Determine the row/section on the tapped cell
    switch (indexPath.section) {
        case 0:
            switch (indexPath.row) {
                case 0: {
                    // initialize and allocate a specific view controller for section 0 row 0
                    anotherVC = [[BmiViewController alloc] init];
                    break;
                }
                case 1: {
                    // initialize and allocate a specific view controller for section 0 row 1
                   /anotherVC = [[AaOxygenGradientViewController alloc] init];
                    break;
                }
            }
            break;
    }
}

但是在这样做之后,它会引用故事板文档中的原始内容(这是空的,因为我已经以编程方式创建了界面),而不是显示我的测试警报弹出窗口。

此外,是否有可能制作一堆表格视图单元格,然后让每个单元格与情节提要中的每个其他视图控制器相连接?

提前非常感谢!

4

1 回答 1

0

首先,你在跑步deselectCellAtIndexPath吗?这是什么原因?如果您只是想删除蓝色突出显示,那么最好更改UITableViewCellSelectionStyle单元格的(或类似的东西)。

我不确定您对第一部分的要求是什么,但是对于 segue 部分,是的。

Storyboard设置从tableViewController您想要连接的其他 VC 到其他 VC 的连接中,并为它们提供所有合理的标识符。

即医学计算器Segue graphSegue userDetailsS​​egue等...

然后在您的didSelect方法中,您将拥有类似...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //some stuff...

    switch(indexPath.row) {
        case 0:
            [self performSegueWithIdentifier:@"medicalCalulatorSegue"];
            break;
        case 1:
            [self performSegueWithIdentifier:@"graphSegue"];
            break;
        case 2:
            [self performSegueWithIdentifier:@"userDetailsSegue"];
            break;
    }
}

然后,这将根据选择的单元格转到每个不同的视图控制器。

不取消选择单元格的原因是,在您的方法中,prepareForSegue您仍然可以访问indexPath所选单元格的...

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
于 2013-01-09T23:44:57.493 回答