我已经在一个特定的视图控制器中成功地将iAds应用到我的应用程序中,并且我想将它们放在我的许多其他视图控制器中。对于每个视图控制器,为每个视图控制器重复写入相同的iAd代码似乎是多余的。我希望能够将iAds的所有代码放在一个类中,只要我需要它就可以调用它。所以我听说过称为辅助类和类方法(+)的东西,但我不确定这是否是我需要的。谁能引导我朝着正确的方向前进?一个例子会有所帮助。
修改
我创建了一个没有视图控制器的单例类,我认为没错。无论如何,在iAd实现中,有许多代码行包括添加子视图,例如
[self.view addSubview:adView];
单身人士告诉我它不会识别“视图”。因此,当我从其他视图控制器调用单例时,是否需要将视图传递给单例?谢谢
答案 0 :(得分:1)
你想分享的是什么?从描述中,您听起来像是对重用实现最感兴趣(而不是各种全局数据/状态)。为此,您可以使用类的多个实例。
当然,您可能希望关注此类的界面,以便它与您必须使用它的视图和控制器良好地交互(以通用方式 - 特殊情况应保留在适当的控制器中)。
答案 1 :(得分: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的广告;我刚才补充说这是一个想法。