我想从id获取viewcontroller名称并使用 id 调用从 id 获取的类方法。
代码 :-
UIViewController *view = (UIViewController*)self.objCurentCallLocation;
[view LocationCalledAndReturned];
提前致谢
正如我从您的代码和描述中了解到的那样,有一种更简单的方法可以做您想做的事情。您可以使用协议,或检查控制器是否响应选择器。
if ([self.objCurentCallLocation respondsToSelector:@selector(LocationCalledAndReturned)]) {
[self.objCurentCallLocation performSelector:@selector(LocationCalledAndReturned)];
}
您可以通过以下方式获取视图控制器的类:
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);