从 Table View Cell xib 与披露指示符转至情节提要
Posted
技术标签:
【中文标题】从 Table View Cell xib 与披露指示符转至情节提要【英文标题】:Segue from Table View Cell xib with disclosure Indicator to storyboard 【发布时间】:2014-07-25 14:12:49 【问题描述】:我是 ios 编程新手,但遇到了问题。我在单独的 xib 文件中有一个带有披露指示器的自定义表格视图单元格,我想在用户点击单元格时调用情节提要中的视图控制器。
这是自定义的表格视图单元格:
这是显示自定义表格单元格的表格视图(类:TableViewController)和我想在用户点击自定义表格视图单元格时调用的视图(类:ViewController):
我要调用的视图是否必须位于单独的 xib 文件中,或者我可以将它放在我的情节提要中吗?最好的解决方案是什么?
【问题讨论】:
【参考方案1】:只需使用表格视图的 didSelectRoWAtIndexPath 方法......做这样的事情......
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
NSString* viewType = @"YourVCIdentifier";//u can have ContactVC or NavC as other options depending on ur condition
UIViewController* viewController = [storyboard instantiateViewControllerWithIdentifier:viewType];
[self.navigationController pushViewController:viewController animated:YES];
这样就可以了
【讨论】:
【参考方案2】:使用 UITableViewDelegate 方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
并手动推送视图控制器。 为情节提要中的视图控制器分配情节提要 ID,然后执行以下操作:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
UIViewController *destVC = [storyboard instantiateViewControllerWithIdentifier:@"your_view_controller_storyboard_ID"];
[self.navigationController pushViewController:destVC animated:YES];
这是您为视图控制器分配情节提要 ID 的地方:
并且不要忘记将您的视图控制器设置为您的 tableView 委托:)
【讨论】:
以上是关于从 Table View Cell xib 与披露指示符转至情节提要的主要内容,如果未能解决你的问题,请参考以下文章
iOS小技能:1. cell的重用原理 2. 使用xib封装一个View的步骤 3. 通过代码自定义cell
将数据从 Table View Cell 传递到 IOS 中的 View Controller
Collection View Xib Cell Bug 中的表视图
自定义 UITableView Cell 的 Stack View 无法检测到 Super View Dimension