如何将[didSelectRowAtIndexPath]选中的单元格转换为字符串供以后使用

时间:2014-05-20 01:16:58

标签: ios iphone nsstring didselectrowatindexpath nsindexpath

我希望找到一种方法来添加didSelectRowAtIndexPath:'小区名称'通过didDismissWithButtonIndex:方法在表格中选择:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {


Database *currentStore = [DBList objectAtIndex:indexPath.row];

NSString *requestStr = @"http://";
requestStr = [requestStr stringByAppendingString:hostTextField.text];
requestStr = [requestStr stringByAppendingString:@":8080/compfile2.php?password="];
requestStr = [requestStr stringByAppendingString:passwordTextField.text];
requestStr = [requestStr stringByAppendingString:@"&db=latinbites"];
requestStr = [requestStr stringByAppendingString:currentStore];


}

显然,

Database *currentStore = [DBList objectAtIndex:indexPath.row];

不正确。有没有办法在所选单元格行上放一个字符串?

3 个答案:

答案 0 :(得分:1)

我相信我理解你想要达到的目标。尝试以下代码: -

否。 1 - 使用NSString

声明属性
@interface TableViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (nonatomic,strong) NSString * selectedCellName;
@end

否。 2 - 在 didSelectRowAtIndexPath

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
self.selectedCellName = cell.textLabel.text;
}

否。 3 - 在 didDismissWithButtonIndex 中,附加单元格名称。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {

NSString *requestStr = @"http://";
requestStr = [requestStr stringByAppendingString:hostTextField.text];
requestStr = [requestStr stringByAppendingString:@":8080/compfile2.php?password="];
requestStr = [requestStr stringByAppendingString:passwordTextField.text];
requestStr = [requestStr stringByAppendingString:@"&db=latinbites"];
requestStr = [requestStr stringByAppendingString:self.selectedCellName];
}
}

答案 1 :(得分:0)

您想要做的事情令人困惑(为什么不让他们点击桌面而不是警报视图?),可以这样做。

首先,请参阅How to programmatically “tap” a UITableView cell? - 之后您需要的只是让NSIndexPath个对象发送到该方法。

NSIndexPath *cellToTap = [NSIndexPath indexPathForRow:buttonIndex inSection:theSection];

该部分应由您决定。如果表视图中只有一个部分,则为0。

答案 2 :(得分:0)

我认为您正在寻找名为indexPathForSelectedRow的UITableView方法。只要仍有选择,这将回答您需要的索引路径。

如果有可能丢失选择(在用户选择之后并且在警报被解除之前),那么更安全的赌注是在didSelect方法触发时将选择记录在属性中。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 1) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        Database *currentStore = DBList[indexPath.row];
        // ...