在UIViewController中没有从UITableView调用prepareForSegue

时间:2013-11-26 23:06:53

标签: objective-c uitableview uiviewcontroller uistoryboardsegue

我有一个包含UITableView的UIViewController。表视图包含自定义UITableViewCell。自定义单元格是在界面构建器中构建的,并且具有一个笔尖。在我的主要故事板中,我将segue从自定义表格视图单元格拖动到目标视图控制器。我在prepareForSegue中设置了裸骨必需品,设置了一个断点,但它永远不会被调用。

我不习惯在视图控制器中使用UITableView。我通常使用UITableViewController,但要求使用视图控制器中的表视图。我最初的假设是大多数做事方法几乎相同,但我发现情况并非如此。

我尝试从视图控制器本身设置segue并使用didSelectRowAtIndexPath,虽然它有效,但是到目标视图控制器的转换是不稳定的。

任何人都可以提出我可能会遗漏的内容,以便使prepareForSegue方法解雇吗?

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    GaugeViewController *destination = [segue destinationViewController];
    [destination setGaugeID:@"1"];
}

谢谢!

1 个答案:

答案 0 :(得分:-1)

您需要在Storyboard中引用segue的标识,如下所示:

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

    GaugeViewController *destination = segue.destinationViewController;

    if([segue.identifier isEqualToString:@"yourSegue"]) {
       NSLog(@"prepareForSegue called");
       [destination setGaugeID:@"1"];
    }else {
       // do something else
    }

}

另外,不要忘记在故事板中设置标识符。

enter image description here

请记住,push segues与导航控制器一起使用,模态segue可以从视图控制器拖动到视图控制器。