表视图使用自定义单元格文件以及如何使用segue

lig*_*ter 3 objective-c storyboard

我用户Master-Detail创建了一个项目.在MasterViewController,表格单元格我使用MasterCell.h,并MasterCell.m建立我的自定义单元格,所以我的代码是:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    MasterCell *cell = (MasterCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell = [[MasterCell alloc] initWithFrame:CGRectZero];
    NSString  *value = [[myContacts objectAtIndex:indexPath.row] valueForKey:@"Name"];
    cell.nameContentLabel.text = [NSString stringWithFormat:@"%@", value];

    value = [[myContacts objectAtIndex:indexPath.row] valueForKey:@"Tele"];
    cell.teleContentLabel.text=[NSString stringWithFormat:@"%@", value];

    value = [[myContacts objectAtIndex:indexPath.row] valueForKey:@"Image"];
    cell.myImageView.image = [[UIImage alloc] initWithContentsOfFile:value];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}
Run Code Online (Sandbox Code Playgroud)

我想要点击单元格并按下DetailViewController,所以我的stroyboard是使用原点创建segue,但它没有工作,我认为segue不是我的MasterCell,我试图改变故事板单元格自定义类,它不是没有成功.我该怎么办?谢谢.

小智 7

在你的故事板中你应该不是从单元格创建segue,而是从整个UITableViewController创建segue并设置一些标识符,例如"MySegue"和style是"Push".

然后在你的tableViewController中你应该添加

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {
       [self performSegueWithIdentifier:@"MySegue" sender:self];
   }
Run Code Online (Sandbox Code Playgroud)

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if([segue.identifier isEqualToString:@"MySegue"]){

    //do your stuff

    }
 }
Run Code Online (Sandbox Code Playgroud)