2012-03-06 2 views
1

두 부분으로 나뉩니다.스플래시 화면에서의 경고

  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

0

에서

덕분에 왜 초기보기의 배경으로 우리의 default.png를로드하지하고 컨트롤러에서 바로 경고를 처리합니다. 당신은 언제나 답을 기반으로 다른보기 또는 단절을 추가 할 수 있습니다.

문제는 UIAlert가 메인 스레드를 차단하여 앱이 제 시간에 시작되는 것을 막을 수 있고 프로세스가 종료 될 수 있다는 것입니다.