#import "MyNavigationController.h" @implementation MyNavigationControllerLayer -(id) init { self = [super init]; if( self != nil ) { bg = nil; navigationController = nil; viewFrame = CGRectMake(enlargen(0.0f), enlargen(0.0f), enlargen(320.0f), enlargen(300.0f)); } return self; } -(void) createView { if( navigationController == nil ) { // create background bg = [[CCSprite alloc] initWithSpriteFrameName:[KITApp chooseResource:@"UI-Bg.png"]]; bg.position = middlize(CGPointZero); [self addChild:bg]; // create the navigation controller navigationController = [[UINavigationController alloc] init]; navigationController.delegate = self; navigationController.view.autoresizesSubviews = YES; navigationController.view.frame = viewFrame; navigationController.navigationBar.barStyle = UIBarStyleBlack; navigationController.view.backgroundColor = [UIColor clearColor]; [navigationController.view reorient]; [navigationController.view recenter]; // add the view [[[CCDirector sharedDirector] openGLView] addSubview:navigationController.view]; } } -(void) destroyView { if( navigationController != nil ) { [navigationController.view removeFromSuperview]; [navigationController release]; navigationController = nil; [bg release]; bg = nil; } } -(void) dealloc { [self destroyView]; [super dealloc]; } -(void) onEnter { [super onEnter]; [self createView]; } -(void) onExit { [super onExit]; [self destroyView]; } -(CGRect) boundingBox { CGSize iSize = [[CCDirector sharedDirector] winSize]; CGRect frame = viewFrame; // stretch the frame for the height of the device and width of the popup frame.origin = CGPointMake((iSize.width - frame.size.width) / 2.0f, 0.0f); frame.size.height = iSize.height; return frame; } @end