将两个视图控制器附加到单个原型单元
Posted
技术标签:
【中文标题】将两个视图控制器附加到单个原型单元【英文标题】:Attach two view controllers to a single prototype cell 【发布时间】:2015-10-29 07:11:31 【问题描述】:考虑以下场景
我有一个原型单元格,基于NSFetchedResultsController
,table view cells
的数量将出现在table view controller
中,例如单元格 A、B、C、D。
基于tableviewcell
的内容,我需要将segue 推送到不同的view controllers
,例如当用户点击cells
A、B、C、D 到E、F、G、H 视图控制器时分别。
设计这个场景的标准方法是什么?
【问题讨论】:
反对票有什么特别的原因吗?? 【参考方案1】:与大多数复杂场景一样,我认为没有一种普遍接受的标准解决方案。一种(我认为)实现这种行为的干净方法可能如下所示:
在 Storyboard 中将目标视图控制器和充当表视图代理的视图控制器之间的 segue 设置为 manual
,并为它们提供适当的标识符(例如“segueE”、“segueF”、“segueG”、 “segueH”)。然后,在拥有您的表格视图的视图控制器中,创建一个封装单元格内容和目标视图控制器之间映射的方法,并实现 didSelectRowAtIndexPath:
委托方法,如下所示:
// Returns "segueE", "segueF", "segueG" or "segueH"
- (NSString *) segueIdentifierForIndexPath:(NSIndexPath *)indexPath
// your mapping logic
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
NSString *segueIdentifier = [self segueIdentifierForIndexPath: indexPath];
[self performSegueWithIdentifier:segueIdentifier sender:self];
当然,segueIdentifierForIndexPath:
中究竟发生了什么取决于您在表格视图中显示的数据的性质。
【讨论】:
感谢您的快速回复,我将实施上述方法并与您联系。以上是关于将两个视图控制器附加到单个原型单元的主要内容,如果未能解决你的问题,请参考以下文章
如何将两个图像附加到 ios 中的 mfmailcomposer 视图控制器