我在第二次运行应用程序时没有出现相机背景.iOS,Vuforia

时间:2013-01-27 08:16:20

标签: ios camera appdelegate vuforia

我通过使用Vuforia进行开发,在iOS上进行关于增强现实的项目。

我在开始FrameMarkerAppDelegate之前创建了视图(扫描AR视图)。在视图页面上按UIButton后,FrameMarkerAppDelegate即被启动。 FrameMarkerAppDalegate运行完成后,背景是相机背景。然后我触摸相机背景并选择返回查看页面,现在我们再次进入查看页面。

我的问题是在我再次按下UIButton之后,相机背景没有出现。它仍然是查看页面,但相机已激活。

  

ViewController.mm

- (IBAction)btnSelect:(id)sender {
    FrameMarkersAppDelegate *appDelegate = [[FrameMarkersAppDelegate alloc] init];
    [appDelegate startFrameAppDelegate];
}
  

FrameMarkerAppDelegate.mm

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc] initWithFrame: screenBounds];
    [self setupSplashContinuation];
    [QCARutils getInstance].targetType = TYPE_FRAMEMARKERS;
    arParentViewController = [[ARParentViewController alloc] init];
    arParentViewController.arViewRect = screenBounds;
    [window insertSubview:arParentViewController.view atIndex:0];
    [window makeKeyAndVisible];
    return YES;
}



-(void)startFrameAppDelegate
{
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc] initWithFrame: screenBounds];
    [self setupSplashContinuation];
    [QCARutils getInstance].targetType = TYPE_FRAMEMARKERS;
    arParentViewController = [[ARParentViewController alloc] init];
    arParentViewController.arViewRect = screenBounds;
    [window insertSubview:arParentViewController.view atIndex:0];
    [window makeKeyAndVisible];
}

1 个答案:

答案 0 :(得分:0)

有同样的问题。基本上我认为错误归结为将非弧vuforia sdk与弧项目合并。我发现当我使用vuforia摄像头作为开放视图控制器时,'vView for CCViewController'中的'dealloc'方法在vuforia viewcontroller第一次运行时没有被调用。但是之后每次都会被调用。看起来太复杂了我没有正确锻炼,所以我通过在'ImageTargetsParentViewController'之前用我的navigationcontroller中的方法推送ImageTargetsParentViewController来粘贴一个blankviewcontroller来攻击它(此方法只是推送了ImageTargetsParentViewController视图控制器)。这似乎解决了它,现在每次都会调用dealloc。

<强> blankviewcontroller.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    double delayInSeconds = 2.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        [((CARNavigationController *)self.navigationController) firstLoadOpenAr];
    });
}