0

我想从id获取viewcontroller名称并使用 id 调用从 id 获取的类方法。

代码 :-

UIViewController *view = (UIViewController*)self.objCurentCallLocation;
[view LocationCalledAndReturned];

提前致谢

4

2 回答 2

3

正如我从您的代码和描述中了解到的那样,有一种更简单的方法可以做您想做的事情。您可以使用协议,或检查控制器是否响应选择器。

if ([self.objCurentCallLocation respondsToSelector:@selector(LocationCalledAndReturned)]) {
    [self.objCurentCallLocation performSelector:@selector(LocationCalledAndReturned)];
} 
于 2013-08-03T11:16:13.857 回答
2

您可以通过以下方式获取视图控制器的类:

Class c = [view class];

您可以通过以下方式对其进行测试以确保它是您想要的:

if ([view isKindOfClass:[MyViewController class]]) {
    // now you know it's safe you can cast it
    [(MyViewController *)view LocationCalledAndReturned];
}

您可以通过以下方式获取类名:

NSString *name = NSStringFromClass(c);
于 2013-08-03T11:07:32.743 回答