1.场景:点击自定义tableviewCell中的一个imageView(属于控制器A)--跳转到控制器B.
2.分析:在自定义的tableviewCell中,push到控制器B,是不可能实现的,因为拿不到navigationController,点击imageView时需要让控制器A帮忙实现push的操作.
3.解决:在tableviewCell 中定义block(),在点击imageView方法中,调用block. 在控制器A中实现block.
4.结论:大哥让小弟办事. 大哥去定义和调用,小弟去实现.
代码如下:
#import "VWHomeViewController.m" --控制器A:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
VWDataPickerCell *mcell = [tableView dequeueReusableCellWithIdentifier:datePickerID forIndexPath:indexPath];
mcell.pushToSearchVC = ^{
VWSearchTableViewController *searchVC = [[VWSearchTableViewController alloc] init];
searchVC.allFeatures = self.claimsArray;
searchVC.allFeaturesNames = self.claimsTemplateName;
[self.navigationController pushViewController:searchVC animated:YES];
};
return mcell;
}
#import "VWDataPickerCell.h"
typedef void (^VWPushToSearchVC)();
@property (nonatomic, copy) VWPushToSearchVC pushToSearchVC;
#import "VWDataPickerCell.m"
// imageView的点击方法
-(void)searchVC{
// 如果实现了就调用block方法
if (self.pushToSearchVC) {
self.pushToSearchVC();
}
}
网友评论