【发布时间】:2023-03-12 02:53:02
【问题描述】:
我想在 cocos2d 项目中显示 UIViewController,所以我在我的 CCLayer 类中这样做了:
-(void)displayMainMenu {
CGSize screenSize = [CCDirector sharedDirector].winSize;
[CCMenuItemFont setFontName:@"Marker Felt"];
[CCMenuItemFont setFontSize:26];
CCMenuItemFont *openViewC = [CCMenuItemFont itemWithString:@"Open View" target:self selector:@selector(loadMyViewController)];
mainMenu = [CCMenu menuWithItems:openViewC, nil];
[self addChild:mainMenu z:0];
}
-(void) loadMyViewController{
//Add the tableview when the transition is done
myView = [[MyViewController alloc] init];
UIView *viewHost = hostView.view;
[[[CCDirector sharedDirector] view] addSubview:viewHost];
}
然后在我的 ViewController 中返回我的 CCLayer 我这样做:
- (IBAction)exitAction:(id)sender
{
[self.view removeFromSuperview];
[[CCDirector sharedDirector] pushScene: [MainMenu scene]]; //i need it or not?
}
一切正常,我使用 cocos2d v2.0,但我想知道是否有更好的方法在 cocos2d 场景中添加 UIViewController,谢谢!
【问题讨论】:
-
为了避免泄漏,将 MyViewController als childViewController 添加到 Director 并在添加后释放 myView。删除时,从超级视图中删除 myView 及其视图。 myView 涵盖了渲染 CCNode 的 eaglview。所以你不需要推送和弹出 CCLayers。
-
你能在答案中更好地解释它吗?谢谢,我等着呢!
标签: iphone ios uiviewcontroller cocos2d-iphone