gpt4 book ai didi

ios - 多个 View 的单个 ADBannerViewDelegate

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:06:57 24 4
gpt4 key购买 nike

我正在尝试为 iOS 应用程序中的多个 View 实现单一的 AdBanner 实例。要在 viewController 中实现 AdbannerDelegate,必须要做 bannerview.delegate= self ;其中 bannerview 是 AdBannerView 的一个实例。然而,这个委托(delegate)方法必须在每个 viewController 中实现,这相当于很多重复代码。我如何构建一个实现所有委托(delegate)方法的简单类,然后在每个 viewController 中调用它们。

最佳答案

我认为您使用的 viewController 是 UIViewController 的子类。
你是说所有的 viewControllers 都有相同的委托(delegate)方法。

所以,我想做的是通过子类化 UIViewController 创建新的 ViewController 类 (UIDelgateViewController) 并在其中添加所有委托(delegate)方法,并拥有所有其他方法viewControllers 子类 UDelgateViewController

代码是这样的,
.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{

}

现在你的 Some 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 = ..../
}

关于ios - 多个 View 的单个 ADBannerViewDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com