0

这是一个两部分的问题。第一个问题:

所以我有一个使用 nib 文件从一个屏幕转换到另一个屏幕的应用程序。这是我用来切换屏幕的代码:

self.transitionView = [[TransitionViewController alloc] initWithNibName:@"TransitionViewController" bundle:nil];

[self.view addSubview: self.transitionView.view];

我的问题是我在 viewdidload 方法中有大约 30 - 40 行代码,可以想象这可能会稍微减慢转换速度,因为一些代码使用 NSURL 来读取数据,但它在进入时需要等待 2 - 3 秒viewdidload 方法以及视图实际完成加载的时间。这条线[super viewdidload]也位于所有这一切的最顶端,这是最令人困惑的部分。那么为什么我的程序需要 2 - 3 秒才能加载?考虑到我那里的代码很少,我认为那是相当长的时间。

问题的第 2 部分是我想创建一个在实际屏幕加载之前出现 2-3 秒的过渡屏幕。我已经删除了该代码,由于某种原因,我的 nib 文件仍然需要永远加载,所以我知道它与此无关,但转换屏幕需要在屏幕 2 之前弹出 3 秒,即使应用程序正在打开10分钟后。我知道 appdelegate 中有一个功能可以帮助完成这项工作,但我不知道代码应该是什么样子。它似乎没有切换

self.transitionView = [[TransitionViewController alloc] initWithNibName:@"TransitionViewController" bundle:nil];

[self.view addSubview: self.transitionView.view];

除此之外,我不知道应该如何构建代码以在屏幕之间切换。任何人都可以给我任何文章或建议?

编辑

我还尝试将 viewdidload 方法中的 NSURL 数据与方法本身分开。我把它全部放在一个名为initialize的方法中,并在调用第二个视图后立即从屏幕1调用它。它根本没有帮助切换时间。我这样做的原因是因为我不想在该人打开应用程序时再次接收所有 nsurl 数据。我只希望他们一次检索它并完成它。我在这里做错了吗?这非常令人沮丧

4

1 回答 1

1

您不应该将过渡效果放在 viewdidload 中,而应该将它们放在 viewdidappear 或 viewwillappear 中,这是控制器加载后将执行的下一步。那是您最好的选择,至于屏幕要放在那里,您需要使用 nib 文件或在 viewdidload 中加载它。我希望这有帮助

于 2013-09-09T14:08:36.943 回答