[Solved] Xcode using delegate to pass data between controllers


i know for this the best option is to use delegates.

In this case, I wouldn’t be so sure. I think the best option would be to have a robust model and use KVO and notifications to signal updates between view controllers.


The direct answer to your question is not too bad.

for (UIViewController *viewController in self.childViewControllers) {
    if ([viewController isKindOfClass:[LeftViewController class]]) {
        LeftViewController *leftViewController = (id)viewController;
        leftViewController.delegate = self;
        break;
    }
}

I think a minor improvement on this would be to use the segue. Make sure each of the containers have a named segue. In this example, the left view controller has a segue with the identifier “Load Child LeftViewController”.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"Load Child LeftViewController"]) {
        LeftViewController *leftViewController = segue.destinationViewController;
        leftViewController.delefate = self;
    }
}

0

solved Xcode using delegate to pass data between controllers