2012-04-23 3 views
0

앞으로 내 앱을 쉽게 통합 할 수 있도록 가능한 한 많이 UIViewController에서 iAd 초기화 코드를 분리하려고합니다. iAd 설정 및 초기화를 처리하기 위해 AdManager (NSObject) 클래스를 만들었습니다. 그러나 이러한 위임 클래스를 구현하는 UIViewController 외부의 개체에 대한 대리자를 설정하는 방법을 모르겠습니다. 예를 들면 :UIViewController 외부에서 대리자를 설정 하시겠습니까?

@interface AppViewController : UIViewController<ADBannerViewDelegate> 

이 같은 것 내 애드 관리자 :

+(void)initAdBannersInView:(UIView*)view andViewController:(UIViewController*)vc{ 
    ADBannerView *iAdBannerView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, -bannerSize.height, bannerSize.width, bannerSize.height)]; 
    iAdBannerView.delegate = vc; 
    [view addSubview:iAdBannerView]; 

오류 (경고) 메시지가있다 : 호환되지 않는 유형에서 'ID'의 UIViewController '

내가 수도로 지정을 대표자에 대한이 특별한 상황에 그다지 좋지는 않을 것입니다. 그래서 저의 오해를 용서해주십시오.하지만 비슷한 방식으로 필요한 것을 얻는 것이 가능합니까? 방법?

답변

1

vc 인수를 UIViewController *으로 정의하고 있습니다. 즉, 거기에 이전보기 컨트롤러를 전달할 수 있으며, 반드시 ADBannerViewDelegate 프로토콜을 준수하는 컨트롤러는 아닙니다. 해당 프로토콜을 준수하는보기 컨트롤러 만 통과 할 수 있도록 vc 인수를 정의해야합니다.

+(void)initAdBannersInView:(UIView*)view andViewController:(UIViewController<ADBannerViewDelegate>*)vc{ 
+0

이 오류는 수정되었습니다. 고맙습니다. – Vad

관련 문제