2013-08-03 41 views
0

我想獲得視圖控制器名稱ID並使用id調用從ID獲取的類方法。從ID獲取ViewController名稱並調用特定的視圖方法

代碼: -

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

由於提前

+0

你的意思是你想檢查視圖控制器的實際*類*? – Wain

+0

是的,我想讓我可以通過該類調用該類的方法。 – Nirmalsinh

+0

不,我想轉換爲id到類。類名不是靜態的,其動態的 – Rushabh

回答

3

當我從您的代碼和說明理解,還有就是做你想做的更簡單的方法。您可以使用協議,或檢查控制器是否響應選擇器。

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

嘿它爲我工作。非常感謝。 – Nirmalsinh

+0

+1爲偉大的回答良好的工作:) – Rushabh

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);