使用文本在单元格中填充标签

时间:2015-08-05 04:31:40

标签: ios objective-c uitableview

我有tableview cell。其中有buttonlabel。当用户点击按钮时,我想弹出一个消息框,用户可以在其中键入一些文本并提交。在该实例中(当用户键入文本并提交时),用户键入的文本应显示在该单元格的UILabel(在该特定cell)中。我怎么能这样做?

cell.cellButton.tag = indexPath.row;
        [cell.cellButton addTarget:self action:@selector(cellButtonClicked:) forControlEvents:UIControlEventTouchUpInside];



-(void)cellButtonClicked: (id)sender {

    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Enter your text" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok"];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    [alert show];

}

注意:这是每个细胞的样子 enter image description here

问题:

1.。)如何使用文本填充Cell中的标签? (请考虑我已经有了我的文字)

3 个答案:

答案 0 :(得分:1)

将按钮操作中的警报视图标记设置为

-(void)cellButtonClicked: (id)sender {
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Enter your text" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    alert.tag = sender.tag;
    [alert show];
}

之后在警报视图委托中写下以下代码

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 1) {
        NSString *name = [alertView textFieldAtIndex:0].text;
        // Insert whatever needs to be done with "name"
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:alertView.tag inSection:0];

        UITableViewCell *cell = [_myTableview cellForRowAtIndexPath:indexPath];
        for (UIView *view in cell.contentView.subviews) {
            if([view isKindOfClass:[UILabel class]]){
                UILabel *label = (UILabel*) view;
                label.text = name;
            }
        }
    }
} 

希望它会对你有所帮助。

答案 1 :(得分:0)

您尝试此代码

-(void)cellButtonClicked: (id)sender {

    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"Enter your text" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok"];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    alert.tag = sender.tag;
    [alert show];

}

警报视图Ok按钮单击代码

您获得TextField文字,并使用indexPath

设置为小区标签
-(void)alertView:(UIAlertView *)alertView1 clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex==alertView1.firstOtherButtonIndex) {
        NSIndexPath *theIndexPath=[NSIndexPath indexPathForRow:alertView1.tag inSection:0];
        UITableViewCell *cell = [self.yourTableViewName cellForRowAtIndexPath:theIndexPath];
        cell.yourLabel.text = [alertView1 textFieldAtIndex:0];
        [self.tableView reloadRowsAtIndexPaths:theIndexPath withRowAnimation:UITableViewRowAnimationNone];

    }
}

答案 2 :(得分:0)

实现表视图的最佳做法是拥有适当的数据源。

因此,如果您的所有单元格都从一个公共位置拾取文本,让我们说一个可变数组,那么您可以更新该数组中该特定indexpath.row上的文本并重新加载该表。