Adwhirl integration problem in iphone
I have two controllers in my application navigation controller and tabbar controller. Navigation controller view does not implement adwhirl and tabbar controller all tabs all view has adwhirl implemented.
@interface myview : UIViewController {
AdWhirlView *awView;
}
@property (nonatomic, retain) AdWhirlView *awView;
@implementation myview
@synthesize awView;
- (UIViewController *)viewControllerForPresentingModalView {
return self;
}
- (NSString *)adWhirlApplicationKey {
return @"Mykey";
}
-(void) viewWillAppear:(BOOL)animated{
// code for Adwhirl banner
self.awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
[self.awView setFrame:CGRectMake(0, 318, 320, 50)];
[self.view addSubview:self.awView];
}
-(void) viewWillDisappear:(BOOL)animated{
[self.awView release];
}
I have write this code in each view in tabbar controller. Adwhirl is perfectly work when i shift navigation controller to tabbar controller. But application is crashed when i shift tabbar controller to navigation controller.
The crash error is as follow.
开发者_开发知识库Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray viewControllerForPresentingModalView]: unrecognized selector sent to instance 0xfd91600'
*** Call stack at first throw:
(
0 CoreFoundation 0x018525a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x019a6313 objc_exception_throw + 44
2 CoreFoundation 0x018540bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x017c3966 ___forwarding___ + 966
4 CoreFoundation 0x017c3522 _CF_forwarding_prep_0 + 50
5 IDogEvents 0x0002e30b -[AdWhirlAdapterGoogleAdMobAds getAd] + 2075
6 IDogEvents 0x00040154 -[AdWhirlView makeAdRequest:] + 1524
7 IDogEvents 0x0003f501 -[AdWhirlView buildPrioritizedAdNetCfgsAndMakeRequest] + 1569
8 IDogEvents 0x000402ef -[AdWhirlView timerRequestFreshAd] + 255
9 Foundation 0x0095b749 __NSFireTimer + 125
10 CoreFoundation 0x018338c3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19
11 CoreFoundation 0x01834e74 __CFRunLoopDoTimer + 1220
12 CoreFoundation 0x017912c9 __CFRunLoopRun + 1817
13 CoreFoundation 0x01790840 CFRunLoopRunSpecific + 208
14 CoreFoundation 0x01790761 CFRunLoopRunInMode + 97
15 GraphicsServices 0x01a8a1c4 GSEventRunModal + 217
16 GraphicsServices 0x01a8a289 GSEventRun + 115
17 UIKit 0x001cbc93 UIApplicationMain + 1160
18 IDogEvents 0x00002349 main + 121
19 IDogEvents 0x000022c5 start + 53
20 ??? 0x00000001 0x0 + 1
Please help me for this.Thanks in advance.
I got the solution. I made common object for
AdWhirlView *awView;
in application delegate. In every view i am using this object instead of self class object.
-(void) viewWillAppear:(BOOL)animated{
// code for Adwhirl banner
appDelegate.awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
[appDelegate.awView setFrame:CGRectMake(0, 318, 320, 50)];
[self.view addSubview:appDelegate.awView];
}
-(void) viewWillDisappear:(BOOL)animated{
[appDelegate.awView removeFromSuperview];
}
And in final view where i shift the controller.
-(void) viewWillDisappear:(BOOL)animated{
[appDelegate.awView removeFromSuperview];
[appDelegate.awView release];
}
精彩评论