飞溅屏幕期间的UIAlert

时间:2012-03-06 02:48:04

标签: objective-c ios xcode

这是一个两部分问题。

  1. 我创建了一个用户协议,用户必须在首次启动应用时同意(这是一个包含某些信息并同意/不同意按钮的提醒)
  2. 我调用在myAppDelegate.m内和方法

    中创建此警报的方法
       - (BOOL)application:(UIApplication *)application 
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    

    问题是当启动画面加载并且我的第一个视图出现时弹出警报。我想在启动画面期间发生这种情况。我该怎么做?

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

    编程了
                          exit(0);
    

    有没有更好的方法,苹果会拒绝我的应用程序吗?

    提前致谢

2 个答案:

答案 0 :(得分:2)

1)你不能 - 在启动画面(你的default.png)中,应用程序正在加载到内存中,因此它不能执行任何代码,包括UIAlertView的呈现。这就是为什么在启动消失之前看不到警报的原因 - 删除启动画面是应用程序在调用applicationDidFinishLoading:withOptions:之前做的最后一件事。

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

关于你的问题:使用exit(),最好避免这样做。如果用户拒绝,您可以简单地做什么。当然,如果您按照我的建议去视图控制器路线,您可以留下另一个机会让用户同意。

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

答案 1 :(得分:0)

为什么不加载我们的default.png作为初始视图的背景,只需在它的控制器中处理Alert。你总是可以根据答案添加另一个视图或segue。

问题是UIAlert阻止了主线程,因此它可以阻止你的应用程序及时启动,并且可以终止该过程。

相关问题