没有使用委托调用prepareForSegue函数?

时间:2012-08-09 09:05:02

标签: objective-c ios5 delegates storyboard segue

我添加了一个带有静态单元格的UITableViewController。我有一个“保存”栏按钮,但是当我点击按钮时,根本没有调用prepareForSegue方法。 这是我的代码:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"AddCustomer"]) {
        UINavigationController *navigationController = segue.destinationViewController;
       AddCustomersViewController *addCustomersViewController = [[navigationController viewControllers] objectAtIndex:0];
        addCustomersViewController.delegate = self;
    }
}

这是我的委托方法

 -(void) customerDidSave:(AddCustomersViewController *)controller newCostomer:(Customers *)customer
    {
        [self dismissViewControllerAnimated:YES completion:nil];
        [self.customers addObject:customer];
        [self.tableView reloadData];
    }

我不知道是什么问题。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

是的,您的segue未连接到IB中的视图控制器类,或者视图控制器的clas名称未设置为视图控制器类

答案 1 :(得分:0)

替换为;

if ([segue.identifier isEqualToString:@"AddCustomer"]) {
[[segue destinationViewController] setDelegate:self];
    }

这是不必要的,可能是造成问题的原因 - [[navigationController viewControllers] objectAtIndex:0]