0

私はidからviewcontroller名を取得し、 idを使用して、idからフェッチされるクラスメソッドを呼び出したいと考えています。

コード:-

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

前もって感謝します

4

2 に答える 2

3

あなたのコードと説明からわかるように、あなたが望むことを行うためのより簡単な方法があります。protocolを使用するか、コントローラーがセレクターに応答するかどうかを確認できます。

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

次の方法でView Controllerのクラスを取得できます。

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 に答える