如何从一个带有动态单元格的表格切换到 3 个或更多不同的视图
Posted
技术标签:
【中文标题】如何从一个带有动态单元格的表格切换到 3 个或更多不同的视图【英文标题】:How switch to 3 or more different views from one table with dynamic cells 【发布时间】:2014-03-19 17:59:09 【问题描述】:我有表格视图,表格是动态数据。我需要根据特定的行切换到不同的视图。 我需要检查用户是否点击了带有“BMW”字样的行,那么您需要打开“机器”视图,如果带有“suzuki”字样的行,则打开摩托车视图。 我用于这个故事板。
【问题讨论】:
有了故事板,我现在不知道该怎么做。我尝试使用 xib 文件。 ImageViewController *obj =[[ImageViewController alloc]initWithNibName:@"ImageViewController" bundle:nil]; [self.navigationController pushViewController:obj 动画:YES];但它没有工作 关于这个话题有很多问题。使用tableView:didSelectRowAtIndexPath
和performSegueWithIdentifier:sender:
。
【参考方案1】:
只需将 segue 中的所有控制器连接到此控制器即可。请注意,不要将 segue 连接到任何按钮的 otlet,而是将其与整个视图控制器连接。然后按照以下步骤操作:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSString * name = [namesArray objectAtIndex:indexPath.row];
if ([name isEqualToString:@"BMW"])
[self performSegueWithIdentifier:@"MachineViewController" sender:self];
else if ([name isEqualToString:@"suzuki"])
[self performSegueWithIdentifier:@"MotorCycleViewController" sender:self];
【讨论】:
【参考方案2】:你可以在UITableView
中使用didSelectRowAtIndexPath
例如:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSString * name = [namesArray objectAtIndex:indexPath.row];
if ([name isEqualToString:@"BMW"])
//Open Machine View
MachineInfoController * info = [[MachineInfoController alloc] init];
// If you use `UINavigationController` use this line
[self.navigationController pushViewController:info animated:YES];
// If you are not using `UINavigationController` use this line
[self presentViewController:info animated:YES completion:nil];
info = nil;
else if ([name isEqualToString:@"suzuki"])
//Open Motorcycle View
MotorCycleInfoController * info = [[MotorCycleInfoController alloc] init];
// If you use `UINavigationController` use this line
[self.navigationController pushViewController:info animated:YES];
// If you are not using `UINavigationController` use this line
[self presentViewController:info animated:YES completion:nil];
info = nil;
【讨论】:
但是在这一行写什么 //Open Machine View 我使用你的代码,但我有异常,'-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“ImageView”笔尖,但未设置视图出口。' 现在如果我点击该行会出现黑屏以上是关于如何从一个带有动态单元格的表格切换到 3 个或更多不同的视图的主要内容,如果未能解决你的问题,请参考以下文章