3つのビューを持つアプリがあります。3つのビューすべてに、画面の下部に広告バナーがあります。最初のビューは、このビューの広告バナーがクリックされたときに一時停止されるオーディオストリーマーを作成します。2番目のビューでAdBannerデリゲートメソッドを使用して、オーディオを停止/開始しようとしています。広告バナーが選択されると、AdBannerデリゲートメソッドはカスタムデリゲート関数を呼び出す必要があります。コードはコンパイルされて実行されますが、正しく機能しません。
NSLogを使用して、広告バナーがデリゲート関数を正しく呼び出していると判断しましたが、これはカスタムデリゲートを呼び出していません。
これが理にかなっていることを願っています。どんな助けでもいただければ幸いです。これが私のコードです。
SecondViewControlerHファイル
#import "SecondViewController.h"
@protocol demoViewControllerDelegate <NSObject>
@required
-(void)stopSent;
-(void)startSent;
@end
@interface SecondViewController ()
{
id<demoViewControllerDelegate> delegate;
}
@property (nonatomic, assign) id<demoViewControllerDelegate> delegate;
@end
SecondViewControllerMファイル
@implementation SecondViewController
@synthesize delegate;
プロトコル
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave {
[delegate stopSent];
return YES;
}
- (void)bannerViewActionDidFinish:(ADBannerView *)banner{
[delegate startSent];
}
FirstViewControllerHファイル
#import <QuartzCore/QuartzCore.h>
#import "iAd/iAd.h"
#import <MessageUI/MessageUI.h>
#import "AudioStreamer.h"
#import "Reachability.h"
#import "SecondViewController.h"
#import "MFAppDelegate.h"
#import "MFSideMenu.h"
Class secondViewConroller;
@interface DemoViewController : UIViewController <ADBannerViewDelegate,demoViewControllerDelegate> {
}
@end
FirstViewControllerMファイル
-(void)stopSent{
if (isPlaying) {
[streamer stop];
wasPlaying=true;
}
}
-(void)startSent{
if (wasPlaying) {
[streamer start];
isPlaying=true;
}
}