2012-03-06 60 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會阻塞主線程,所以它可能會阻止您的應用程序及時啓動,並且進程可能會終止。