0

我在集成 Greystripe 广告时遇到了一些问题(在此处记录但不重要)。如果像这样展示我的游戏视图,可以解决我的问题

iSlideAppDelegate *appDelegate = (iSlideAppDelegate *)[[UIApplication sharedApplication] delegate];
            UIStoryboard *storyboard = self.storyboard;
            Game3ViewController *gameView = (Game3ViewController *)[storyboard instantiateViewControllerWithIdentifier:@"mainGameController"];
            [appDelegate.window addSubview:gameView.view];

这基本上只是在当前视图控制器之上添加我的游戏视图。

现在从这个视图我想显示另一个像这样的模态视图

FullScreenSelfAdViewController *adView = [[FullScreenSelfAdViewController alloc] initWithNibName:@"FullScreenSelfAdViewController" bundle:nil];
        [adView setDismissDelegate:self];
        [self presentModalViewController:adView animated:YES];

问题是,当显示此视图时,我的 gameView 会取消分配。这意味着当我调用解除它的 AdView 时,它会释放但仍留在屏幕上,因为底层的 gameView 不再存在。

有没有更好的方法来调用这些视图?(我不能通过将它呈现为模态视图来调用我的游戏视图)。或者一种防止gameView被释放的方法?

4

1 回答 1

2

如果我不得不猜测,你没有一个强大的变量来保留被释放的类。创建该类的人应该有一个强大的 ivar 这样做。当我尝试创建一个对象并在不保留它的情况下使用它时,我遇到了同样的问题。请注意,对于 UIAlerts,系统会在您调用 [alert show] 时保留它,导致您认为您可以使用其他视图控制器执行此操作(您不能!)

祝你好运。

于 2012-07-14T15:48:51.640 回答