2012-01-27 91 views
0

我有一个应用程序,它以闪屏(Default.png)打开,然后将第一个视图(ViewController1)加载到导航控制器中。马上,的ViewController2(VC2)的实例被创建,并且推到导航控制器:在从另一个视图控制器加载视图控制器时显示启动画面

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

因此,当我运行应用程序时,显示默认图像,那么ViewController1视图被简要地显示,直到ViewController2被加载(然后显示)。

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

非常感谢。

+0

您可以添加一个UIImageView与闪屏图像[窗口addSubview:splashImage];就在执行代码之前[self.navigationController pushViewController:VC2 animated:YES];然后在VC2的viewDiDAppear – samfisher 2012-01-27 15:57:22

回答

0

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

+0

删除它如果我只是把一个UIImageView放在VC1(顶部),我得到一个错误(SIGABRT),我想因为VC2访问它认为是在VC1的顶视图的一些数据。任何可以以编程方式解决此问题的方法(可能是通过在VC1中添加UIImageView?) – 2012-01-27 16:58:44

+0

您可以将'UIImageView'放在后面,并将其他视图的alpha设置为0,然后将所有alpha值更改为1'viewDidDisappear :' – 2012-01-27 17:33:44

-1

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

1

我认为你的情况,你想VC2作为你的起点与VC1作为你的临时启动画面。 default.png图片应该是一种反映应用外观的方式,以便让您的应用启动和运行的速度比看起来更快。 (这取自Apple's HIG

您可能需要考虑将VC1设置为新的splashscreen/loading屏幕。你可以把它变成一个简单的等待或者加载页面,然后一旦你的应用程序中的所有内容都被处理完毕,就加载VC2。 Default.png可能是加载屏幕的图像,并会给你的应用程序马上加载的印象。

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

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

2

如果你想要做的唯一一件事就是显示VC2不显示VC1,在你VC1的viewDidLoad方法,你可以做self.view.hidden = YES;然后按下VC2没有动画

相关问题