单击按钮时传递两个参数(按钮单击时访问两个字符串)

时间:2011-10-22 11:09:21

标签: iphone ios

我是手机的新程序员

我有一点问题....我想在点击按钮上传递两个参数....

//---insert individual row into the table view---

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell %i",indexPath.section]];

    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[NSString stringWithFormat:@"Cell %i",indexPath.section]] autorelease];

    }


    cell.selectionStyle = UITableViewCellSelectionStyleNone;//my code.... change the color or selected cell



    search_items *pro = [searchCount objectAtIndex:[indexPath row]];


        NSString *string1=[[NSString alloc]init];
    NSString *string2=[[NSString alloc]init];


       /// i wants access these two strings on buttonClicked Method...(pass as a argument):)

    string1=pro.s_showroomName;

        string2=pro.s_productName;


       UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    aButton.frame = CGRectMake(150, 15,150,40); 

    [aButton setTag:indexPath.row];

        [aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];

        [cell.contentView addSubview:aButton];

    UIImage *img = [UIImage imageNamed:@"image.png"];

        [aButton setImage:img forState:UIControlStateNormal];

        [aButton setTitle:@"View Details" forState:UIControlStateNormal];

    [aButton addSubview:buttonLabel1];


    NSString *filepath=[[NSBundle mainBundle]pathForResource:pro.s_image ofType:@"png"];

        UIImage *image=[UIImage imageWithContentsOfFile:filepath];



    cell.imageView.image=image;



    return cell;
}

-(void)buttonClicked:(UIButton*)sender {

    //int tag = sender.tag;


}

1 个答案:

答案 0 :(得分:0)

在按钮回调中从按钮访问您的单元格的一种简单方法是询问它的superview的超级视图:

-(void)buttonClicked:(UIButton*)sender {

    //int tag = sender.tag;
    UIView* contentView = [sender superview];
    if ([[contentView superview] isKindOfClass:[UITableViewCell class]] == NO) {
        NSLog(@"Unexpected view hierarchy");
        return;
    }
    UITableViewCell* cell = (UITableViewCell*)[contentView superview];

}

您还可以根据按钮的框架,在表格视图中找出它所属的单元格。您需要将框架从按钮转换为表格视图(UIView具有进行转换的方法)。

默认的UITableViewCell对象有一个textLabel和一个detailTextLabel,在你的cellForRowAtIndexPath方法中你可以像这样设置它们的文字:

cell.textLabel.text = @"Some text";
cell.detailTextLabel.text = @"Some detail text";

然后,当您获得单元格时,您可以在回调中访问这些属性。