【问题标题】:Cocos2d 2.1 - How can I show UIImagePicker view controller from within CCLayer?Cocos2d 2.1 - 如何从 CCLayer 中显示 UIImagePicker 视图控制器?
【发布时间】:2013-11-18 02:00:53
【问题描述】:

我使用的是 Cocos2d 2.1。最新稳定。我已经阅读了与此问题相关的其他一些帖子,但我怀疑他们可能使用的是旧版本的 Cocos2d。我有一个 MenuLayer (CCLayer),我想展示 UIImagePicker 视图。这是我目前正在尝试的:

-(void)pickPhoto{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.wantsFullScreenLayout = YES;
[self presentModalViewController:picker animated:NO];
[[[CCDirector sharedDirector] view] addSubview:picker.view];

}

应用程序崩溃并出现以下错误:

-[MenuLayer presentModalViewController:animated:]:无法识别的选择器发送到实例 0x89768f0

所以 CCLayer 不能是 UIViewController。有人能告诉我如何从 CCLayer 中正确显示 UIImagePicker 吗?

谢谢!

【问题讨论】:

    标签: iphone objective-c cocos2d-iphone


    【解决方案1】:

    我想通了。

    此解决方案有效:

    -(void)pickPhoto{
    UIImagePickerController *picker = [[UIImagePickerController alloc]init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    picker.wantsFullScreenLayout = YES;
    [[[CCDirector sharedDirector] view] addSubview:picker.view];
    }
    

    【讨论】:

      【解决方案2】:

      presentModalViewController 是 UIViewController 的一个方法。您只能调用从 UIViewController 继承的类。但是,在您的情况下,MenuLayer 不是从 UIViewController 继承的。如果你想展示视图控制器,你应该使用 CDDirector 类。

         [[CCDirector sharedDirector] presentModalViewController:picker animated:YES];
      

      【讨论】:

        猜你喜欢
        • 2015-10-13
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多