从另一个视图控制器加载视图控制器时显示启动画面

时间:2012-01-27 15:09:15

标签: ios view uinavigationcontroller splash

我的应用程序以启动画面(Default.png)打开,然后在导航控制器中加载第一个视图(ViewController1)。直接,创建ViewController2(VC2)的实例,并将其推送到导航控制器:

[self.navigationController pushViewController:VC2 animated:NO];

因此,当我运行应用程序时,会显示默认图像,然后会暂时显示ViewController1的视图,直到加载ViewController2(然后显示)。

如何停止ViewController1的简短显示?我可以扩展Default.png的显示,直到显示VC2,或者使用Default.png图像覆盖ViewController1,直到VC2显示?

非常感谢。

4 个答案:

答案 0 :(得分:2)

如果您要做的唯一事情就是在不显示VC1的情况下显示VC2,在VC1的viewDidLoad方法中,您可以执行self.view.hidden = YES;,然后在没有动画的情况下推送VC2

答案 1 :(得分:1)

我认为在您的情况下,您希望VC2成为您的起点,VC1作为您的临时启动画面。 default.png图片应该是一种镜像应用外观的方式,以提供应用启动和工作速度超过可能出现的效果。 (这取自Apple's HIG

您可能需要考虑将VC1设置为新的启动画面/加载屏幕。你可以将它变成一个简单的等待或加载页面,然后在应用程序中的所有内容都被处理后加载VC2。 Default.png可能是加载屏幕的图像,会立即显示您的应用正在加载的印象。

关于如何处理这个问题,有许多不同的意见。您最终必须决定哪种方法最适合您和您的应用程序。

最后一点想法,您可以直接加载到VC2并只显示加载进度视图。我在加载信息或执行他们需要等待的任务时使用MBProgressHUD来锁定用户。这可能是另一种选择。希望这些信息有所帮助。

答案 2 :(得分:0)

您可以使用Default.png向VC1添加UIImageView,然后在viewDidDisappear:中将其删除。

答案 3 :(得分:-1)

我认为您无法修改Default.png行为。我建议你在ViewController1中用Default.png作为图像创建一个UIImageView。为它提供与屏幕完全相同的大小,并将其添加为完整覆盖它的子视图。这样你就会看到Deafult.png两次,然后它会转到ViewController2