0

我已经在一个特定的视图控制器中成功地将 iAd 实现到我的应用程序中,并且我想将它们放入我的许多其他视图控制器中。为每个视图控制器一遍又一遍地编写相同的 iAd 代码似乎是多余的。我希望能够将 iAd 的所有这些代码放在一个类中,并在需要时调用它。所以我听说过一些叫做帮助类和类方法(+)的东西,但我不确定这是否是我需要的。谁能带领我朝着正确的方向前进?一个例子会很有帮助。

编辑

我创建了一个没有视图控制器的单例类,我认为这是正确的。无论如何,在 iAd 实现中,有许多代码行包括添加子视图,例如

[self.view addSubview:adView]; 

单身人士告诉我它不识别“视图”。因此,当我从其他视图控制器调用单例时,是否需要将视图传递给单例?谢谢

4

2 回答 2

1

你想分享什么?从描述中,您听起来对重用实现最感兴趣(而不是各种全局数据/状态)。为此,您可以使用一个类的多个实例。

当然,您可能希望关注此类的接口,以便它与您必须使用它的视图和控制器进行良好的交互(以通用方式 - 特殊情况应保留在适当的控制器中)。

于 2012-08-13T22:57:40.023 回答
1

您的新类 iAd 单例确实没有视图;因此您无法从那里访问一个。

我建议不要将视图控制器的视图传递给 iAd 类,而是让您的 VC 请求广告。像这样的东西:

// SomeViewController
// Maybe this is viewDidLoad? It's wherever you are ready to 
// incorporate the ad into your view.
- (void) arrangeViewIncludingAds
{
    // Do other setup

    UIView * adView [[iAdSingleton sharedIAd] adWithParameters:infoToSelectAnAppropriateAdForThisVC];
    [self.view addSubview:adView];

    // Continue setup
}

我不确定您是否要更改每个 VC 的广告;我只是将其添加为一个想法。

于 2012-08-13T23:00:40.247 回答