在MyTableViewCell.h中:
#import <UIKit/UIKit.h>
@protocol CellClickButtonDelegate <NSObject>
-(void)choseTerm:(UIButton *)button withImg:(UIImage *)img;
@end
@interface MyTableViewCell : UITableViewCell
@property (nonatomic,strong) id<CellClickButtonDelegate> delegate;
@end
//*******************************************************************************************************************
在MyTableViewCell.m中:
#import "MyTableViewCell.h"
@implementation MyTableViewCell
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (IBAction)clicked1:(id)sender {
if (_delegate != nil&&[_delegate respondsToSelector:@selector(choseTerm:withImg:)]) {
[_delegate choseTerm:sender withImg:[UIImage imageNamed:@"welcome1.jpg"]];
}
}
- (IBAction)click2:(id)sender {
if (_delegate != nil&&[_delegate respondsToSelector:@selector(choseTerm:withImg:)]) {
[_delegate choseTerm:sender withImg:[UIImage imageNamed:@"welcome2.jpg"]];
}
}
- (IBAction)click3:(id)sender {
if (_delegate != nil&&[_delegate respondsToSelector:@selector(choseTerm:withImg:)]) {
[_delegate choseTerm:sender withImg:[UIImage imageNamed:@"welcome3.jpg"]];
}
}
@end
//*******************************************************************************************************************
//*******************************************************************************************************************
在TableViewController.m中(.h中无代码):
#import "TableViewController.h"
#import "MyTableViewCell.h"
#import "TestViewController.h"
@interface TableViewController ()<CellClickButtonDelegate>
@end
@implementation TableViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableView registerNib:[UINib nibWithNibName:@"MyTableViewCell" bundle:nil] forCellReuseIdentifier:@"cell"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
cell.delegate = self;
return cell;
}
#pragma mark ---cell中代理方式完成跳转页面和传值------
-(void)choseTerm:(UIButton *)button withImg:(UIImage *)img{
TestViewController *vc = [[TestViewController alloc]init];
vc.img = img;
[self.navigationController pushViewController:vc animated:YES];
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 270;
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/
/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
*/
/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/
/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the item to be re-orderable.
return YES;
}
*/
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
//*******************************************************************************************************************在跳转之后的页面TestViewController.h中:
@interface TestViewController : UIViewController
//属性传值
@property (nonatomic,strong) UIImage *img;
@end
//*******************************************************************************************************************在跳转之后的页面TestViewController.m中:
#import "TestViewController.h"
@interface TestViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *myImgv;
@end
@implementation TestViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.myImgv.image = self.img;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
//*******************************************************************************************************************
在跳转之后的页面TestViewController.xib中:
//*******************************************************************************************************************
效果: