这是一个两部分问题。 第一个问题:
所以我有一个使用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数据。我只是希望他们一次检索它并完成它。我在这里做错了吗?这非常令人沮丧
答案 0 :(得分:1)
你不应该把你的过渡效果放在viewdidload中,你应该将它们放在viewdidappear或viewwillappear中,这是控制器加载后的下一步。这是你最好的选择,因为屏幕要把它放在那里,你需要使用nib文件或viewdidload加载它。 我希望这很有帮助