使用instantiateViewControllerWithIdentifier设置自定义委托

时间:2017-05-22 06:23:32

标签: ios objective-c

我使用以下代码来showViewController,我设置了委托。

Filters * vc = [storyboard instantiateViewControllerWithIdentifier:@"FilterMe"];
        vc.filtersDelegate = self;
        [self presentViewController:vc animated:YES completion:nil];

但我得到以下错误,

[UINavigationController setFiltersDelegate:]: unrecognized selector sent to instance 0x1018cf600'

我错过了什么?

2 个答案:

答案 0 :(得分:2)

似乎[storyboard instantiateViewControllerWithIdentifier:@"FilterMe"]会返回UINavigationController

检查您的故事板但您可能需要vc.viewControllers.first才能访问您的真实视图控制器。

尝试:

    UINavigationController *navController = [storyboard instantiateViewControllerWithIdentifier:@"FilterMe"];
    Filters *vc = navController.viewControllers.firstObject;
    vc.filtersDelegate = self;
    [self presentViewController:navController animated:YES completion:nil];

答案 1 :(得分:1)

在您的课程的故事板检查标识符中以及导航控制器中,它嵌入在。