试图让UITableviewCell调用一个单元格号

时间:2014-02-06 01:09:25

标签: ios objective-c xcode core-data

在我的应用程序中,我有一个页面可以保存联系人的姓名,欠款和手机号码。我有两个部分。一部分是您欠下的人员名单,另一部分是欠您的人员名单。当用户点击某人时,我希望能够自动呼叫用户的手机号码。这是我到目前为止所做的。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath     *)indexPath
{
    if (indexPath.section == 0)
    {
        NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"OwedMoney"];
        NSMutableArray *storedCellNumbers = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
        NSString *cellNumber = [NSString stringWithFormat:@"%@", [storedCellNumbers valueForKey:@"youOweCellNum"]];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:cellNumber]];

    }

    else if (indexPath.section == 1)
    {
        NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
        NSFetchRequest *myFetchRequest = [[NSFetchRequest alloc]     initWithEntityName:@"TheyOweMoney"];
        NSMutableArray *storedCellNums = [[managedObjectContext executeFetchRequest:myFetchRequest error:nil] mutableCopy];
        NSString *ThecellNumber = [NSString stringWithFormat:@"%@", [storedCellNums valueForKey:@"theyOweCellNum"]];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ThecellNumber]];

    }
}

但到目前为止,当用户点击手机时,没有任何事情发生。我不确定发生了什么。我确保细胞编号保存在这里:

NSManagedObjectContext *context =  [self managedObjectContext];
OwedMoney *owedMoney = [NSEntityDescription insertNewObjectForEntityForName:@"OwedMoney" inManagedObjectContext:context];
[owedMoney setValue:self.cellNum.text forKey:@"youOweCellNum"];

所有帮助表示赞赏,提前致谢

2 个答案:

答案 0 :(得分:0)

确保您已设置表的委托。

如果您在界面构建器中创建了表视图,则可以右键单击它,然后单击从“委托”拖动到要作为表视图的委托的文件。

否则,它就像这样简单:

myTableView.delegate = someDelegateObject;

答案 1 :(得分:0)

确保您的表格视图的委托已设置。

@interface YourTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>

然后设置表视图委托

table.delegate = self;

您可以通过在NSLog中设置didSelectRowAtIndexPath:或断点进行仔细检查,看看它是否被调用。