0

以下代码:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if (viewController == [tabBarController.viewControllers objectAtIndex:0]) {
        MySearchViewController *controller = viewController;
        [[controller tableView] reloadData];
    }
}

产生以下警告:

Incompatible pointer types initializing 'MySearchViewController *__strong' with an expression of type 'UIViewController *__strong'

什么是正确的方法来viewController转换到正确的类MySearchViewController来调用它的方法?

4

1 回答 1

2

只需更改为:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if (viewController == [tabBarController.viewControllers objectAtIndex:0] && [viewController isKindOfClass:[MySearchViewController class]]) {
        MySearchViewController *controller = (MySearchViewController *)viewController;
        [[controller tableView] reloadData];
    }
}
于 2012-08-25T21:00:11.043 回答