从id获取ViewController名称并调用特定的view方法

时间:2013-08-03 11:03:45

标签: iphone ios ios5

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

代码: -

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

先谢谢

2 个答案:

答案 0 :(得分:3)

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

if ([self.objCurentCallLocation respondsToSelector:@selector(LocationCalledAndReturned)]) {
    [self.objCurentCallLocation performSelector:@selector(LocationCalledAndReturned)];
} 

答案 1 :(得分: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);