有人能告诉我如何使用故事板为桌面视图元素分配界面吗?我正在制作一个医疗计算器,每个方程都有不同的计算器,我需要帮助制作指向元素的代码以推送到另一个界面。这是因为对于每个等式,都有不同的字段要填写(例如年龄,氧气水平,是否有人患有糖尿病,身高等)并非每个等式都需要相同的字段。
我试过这样做:
-(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;
}
}
但是在执行此操作之后,它会返回到故事板文档中最初的内容(因为我已经创建了界面programmicatally,这是空的),而不是显示我的测试警告弹出窗口。
此外,是否有可能制作一堆表格视图单元格,然后将每个单元格转换为故事板中的每个其他视图控制器?
提前多多感谢!
答案 0 :(得分:0)
首先,您正在运行deselectCellAtIndexPath
?这是什么原因?如果您只是想删除蓝色突出显示,那么最好更改单元格的UITableViewCellSelectionStyle
(或类似内容)。
我不确定你要求的第一部分是什么,但是对于segue部分则是肯定的。
在Storyboard
中设置要从tableViewController
到另一个VC的segue,并为其提供所有合理的标识符。
即。 medicalCalulatorSegue graphSegue userDetailsSegue 等...
然后在您的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];