IOS使用自定义tableview单元prepareForSegue

时间:2014-07-27 19:33:02

标签: ios uitableview

我用我的自定义单元格创建了一个.xib,我在我的故事板中的一个tableviewcontroller上使用了它。

在故事板中,我将当前的tableview与另一个带有push segue的tableview相关联。 (当用户点击其中一个单元格时,他有一个新视图)。

问题是,我不明白,如何"链接"这个segue,还有我的CUSTOM单元?

我正在加载我的自定义单元格:

static NSString *simpleTableIdentifier = @"cellCustom";

cellCustomView *cell = (cellCustomView *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"cellCustom" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}

当我尝试实现该方法时:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"test"); 
}

我什么都没有,因为根据我的说法,我错过了与自定义单元格有关的事情,以及我的故事板的细节,但我不明白它是如何工作的:/

THX,

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

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

此方法属于包含tableView的任何类。确保tableView的委托在该类中等于self。如果您正在使用故事板,请将此视图拖动到您想要转移到的任何视图。单击该segue,并将其标识符更改为“MySegue”或您想要的任何内容,只要它在您的代码中相同即可。

答案 1 :(得分:0)

您可以尝试以下方法

控制+从您的单元格拖动到下一个视图控制器以设置一个名为“showDetail”的segue,您要在单击tableview单元格时显示该区域。

并在您的视图控制器中

如果您有nsarray,例如

NSArray *names = @[@"Apple", @"Google", @"Microsoft"];

并且您希望根据所选的表行单元格索引传递数组值,您可以按如下方式

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   if ([[segue identifier] isEqualToString:@"showDetail"]) 
   {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        NSString *name = _names[indexPath.row]; 

        // For explanation sake, I am assuming name as property defined 
        // in your destination view controller
        [[segue destinationViewController] setName:name];  
    }
}