gpt4 book ai didi

iphone - 尝试刷新 View Controller 时黑屏

转载 作者:行者123 更新时间:2023-11-29 04:02:08 25 4
gpt4 key购买 nike

我正在为 iPhone 开发一款单词搜索益智游戏,并尝试为该应用程序实现一个重启按钮。重新启动按钮应该能够初始化新的 View Controller 、生成新的谜题并显示新的谜题。

到目前为止,在益智游戏 View 中,我有一个按钮,单击它会使用模态转场打开暂停菜单 View 。(暂停菜单有三个按钮,恢复,重新启动,主菜单。)然后我使益智游戏 Controller 成为暂停菜单的代表,在按下按钮时接收通知。恢复和主菜单按钮可以工作,但我在使用重新启动按钮重新加载 View 时遇到问题。该谜题位于容器 View 内,该 View 具有一个创建网格并显示字母的集合 Controller 。

使用我当前的代码,当我单击重新启动按钮时,我看到的只是一个黑屏,仅显示导航栏。但是,一旦我单击暂停菜单按钮(位于导航栏中),然后单击暂停菜单中的恢复按钮,我就会看到包含新生成的谜题的 View 。

下面是pauseMenuController中的代码:

- (IBAction)IBARestart:(id)sender {
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
[self.delegate goToRestart];
}

现在这是我的 puzzleGameController 中的代码:

  -(void)goToRestart{        
self.view = nil;
[self.view.window setNeedsDisplay];

PuzzleCollectionControllerViewController *puzzleInstance = [self.childViewControllers lastObject];
puzzleInstance.view = nil;
[puzzleInstance.view setNeedsDisplay]; // I tried reloading the cointainer view too, but it still shows black screen


}

有人知道为什么它显示黑屏吗?提前致谢

最佳答案

我不确定这是否足够的代码来解决您的问题..

但我对此的担忧是:为什么重启时“nil” self.view ?如果这样做, View 将为“nil”,因此不会显示任何内容,与 puzzleInstance.view 相同。

您可以在 viewDidUnload 上为此取消/释放内存,因为 View 将在 viewDidLoad 上再次设置,但通常我只是“nil”/“dealloc”任何属性、 socket 等(在 viewDidUnload 或 dealloc 上,具体取决于我在哪里设置/重新设置它们)而不是 View 本身。“setNeedsDisplay”只会“重绘” View ,但如果它为零,恐怕没有什么可以重绘的。所以我很确定这就是你的问题。

有什么不同,或者当您按“恢复”(代码?)时发生了什么。

关于iphone - 尝试刷新 View Controller 时黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com