2012-03-06 59 views
1

这是一个两部分问题。在飞溅期间UIAlert

  1. 我创建了一个用户协议,用户必须同意时,首先启动应用程序(它是与一些信息的警报,并同意/不同意按钮)

我呼吁方法这里面myAppDelegate.m和方法

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

内创建此警报的问题是警报时弹出启动画面加载完成,我的第一个观点出现。我想在启动画面中发生这种情况。我将如何做到这一点?

第二个问题是,当用户按下“不同意按钮”,我希望他们退出应用程序,所以我与

     exit(0); 

编程它有没有更好的方式将苹果拒绝我因为这个应用程序?

在此先感谢

回答

2

1)在启动屏幕(您的default.png)中,应用程序正在加载到内存中,因此无法执行任何代码,包括呈现UIAlertView。这就是为什么直到飞溅消失才看到警报 - 在调用applicationDidFinishLoading:withOptions:之前,删除启动屏幕是应用程序最后一次执行的操作。

可以做的是创建一个视图控制器,模仿你的启动画面。这很简单 - 如果需要,甚至可以重复使用default.png作为背景,但更好的办法是在第一个视图控制器中显示您的协议文本和同意/不同意按钮。

至于你的问题:使用exit(),最好避免这样做。如果用户拒绝,你可以不做任何事情。当然,如果您按照我的建议去看视图控制器路线,您可以给出另一个让用户同意的机会。

另一个想法是,Apple允许您在上传二进制文件时自定义应用程序的EULA - 您可以将其放在那里并进行覆盖。

+0

谢谢你的详细解答。将接受 – jamesHoward 2012-03-06 03:10:18

0

为什么不加载我们为Default.png,你最初的观点的背景,只是处理警报在它的控制器。您总是可以根据答案添加其他视图或继续。

问题是UIAlert会阻塞主线程,所以它可能会阻止您的应用程序及时启动,并且进程可能会终止。