iOS 앱에서 여러보기에 대해 단순한 AdBanner 인스턴스를 구현하려고합니다. viewController에서 AdbannerDelegate를 구현하려면 을 사용해야합니다. bannerview.delegate = self; 여기서 bannerview는 AdBannerView의 인스턴스입니다. 그러나이 델리게이트 메소드는 반복적 인 코드가 많은 모든 viewController에 구현되어야합니다. 어떻게 모든 델리게이트 메소드를 구현하는 간단한 클래스를 만들 수 있으며 모든 viewController에서 사용하도록 요청합니다.여러보기에 대해 단일 ADBannerViewDelegate
2
A
답변
2
당신이 사용하고있는 viewController는 UIViewController의 서브 클래스라고 생각합니다.
그리고 모든 viewController가 동일한 대리자 메서드를 가지고 있다고 말하고 있습니다.
그래서, 내가 뭘 원하는 UIViewController
를 서브 클래스 새의 ViewController 클래스 (UIDelgateViewController
)를 만들고 거기에 모든 대리자 메서드를 추가하고 다른 모든 viewControllers가 UIDelgateViewController 서브 클래스가 있습니다.
코드는 이렇게 가고,
.H 파일 ->
@interface UIDelegateViewController : UIViewController<ADBannerViewDelegate>
@property ADBannerView *bannerView;
@end
하는 .m 파일 ->
#import "UIDelegateViewController.h"
@interface UIDelegateViewController()
@end
@implementation UIDelegateViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
_bannerView = [[ADBannerView alloc] init];
_bannerView.delegate =self;
}
-(void)bannerDelegateMethod{
}
이제 일부의 ViewController ->
#import "UIDelegateViewController.h"
@interface SomeViewController : UIDelegateViewController
@end
#import "SomeViewController.h"
@interface SomeViewController()
@end
@implementation SomeViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.view addSubview:self.bannerView];
self.bannerView.frame = ..../
}
1
보기를 탐색하고 변경하는 동안 항상 동일한 배너를 화면에 유지하려면 사용을 고려해야합니다. View Controller containtment API
큰 막대기의 예로는 remarkable sample code written by Apple인데, 이는 Tabbar 또는 탐색에서 이동하는 동안 동일한 배너 인스턴스를 유지하는 방법을 보여줍니다 제어 장치. 프로젝트를 시작하기에 좋은 출발점이 될 수도 있습니다.
시도했습니다. 그것은 잘 작동하지만 어딘가에 응용 프로그램을 실행하면 오류가 발생하여 exc_bad_access 오류가 발생합니다. 내 생각에 uiviewController 일부가 사라지는 것 같습니다. – asadullah07
업데이트 된 답변 확인 – santhu
코드에 대해 많은 것을 Thnaks. UITableView 및 UIScrollview 같은 viewController 다른 하위 뷰를 사용하고 있습니다. 하나의 AdBannerDelegate 메소드에서 이러한 모든 변경 사항 (다른 넷 하위 뷰 크기 조정)을 통합하려면 어떻게해야합니까? – asadullah07