2012-07-11 5 views
0

내 응용 프로그램이로드되면 설치 프로그램의 역할을합니다. "설치"버튼을 누르면 응용 프로그램이 작업을 수행합니다. 필요한 것을 설치 한 다음 앱을 계속 사용할 수 있습니다. 내 응용 프로그램은 정상적으로 작동하지만 멀티 태스킹 막대의 응용 프로그램을 닫을 때마다 응용 프로그램이 원래 설치 관리자와 같은 방식으로 다시로드됩니다. 따라서 사용자는 앱이 다시로드 될 때마다 계속해서 다시 설치해야합니다. 사용자가 항목을 한 번만 설치하고 앱을 종료 한 다음 다시 다운로드하지 않고도 콘텐츠를 다시 사용할 수 있기를 바랍니다. 나는 이것을 위해 NSUserDefaults를 사용할 필요가 있다는 것을 알고 있지만 설치자와 함께 "설치"버튼이 영구히 사라지 길 원합니다. 참고 이것은 상점이 아닙니다. 이것은 길 아래로 더 사용할 수있는 콘텐츠를 설치하기위한 테스트 앱입니다. 어떻게이 모든 것을 할 수 있습니까? 어떤 도움을 주셔서 감사합니다. 감사!응용 프로그램이 닫히면 버튼이 숨겨집니다.

답변

1

몇 번 이와 같이 구현 한 경우 detect first launch에 가장 적합하며이를 기반으로 설치 프로그램 화면을 표시하십시오. 그러나 사용자가 설치를 완료하지 않은 경우가 있으며 앱이 어떻게 든 백 그라운드로 돌아가거나 살해되는 경우가 있습니다. 이 경우 사용자가 설치를 완료했는지 여부를 기록하는 다른 변수를 저장해야합니다.

가장 간단한 방법은 설정이 처음 완료되지 않은 경우 모달보기 컨트롤러를 마법사 종류로 제시하고, 기본 화면을 그대로 유지하는 것입니다.

+0

첫 발사를 감지하기보다 그가 언급 한 '설치'완료를 감지해야합니다. 그는 항상 사용자가 첫 번째 출시에 설치하도록 강요한다면 대략 같다고 생각합니다. –

+0

예, 게시물에서 그 주소를 지정합니다. – CodaFi

0

설치하기 전에 사용자 기본값을 쿼리하면됩니다. 설치되지 않으면, 필요한 것을 설치하고 사용자 기본값을 설정하십시오!

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSString *isInstalled = [defaults objectForKey:@"installed"]; 
if(![isInstalled isEqualToString: @"true"]) { 
    //do installation here 

    NSString *hasUserInstalled = @"true"; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:hasUserInstalled forKey:@"installed"]; 
    [defaults synchronize]; 
} 
+0

아마도 boolForKey ..를 사용하는 것이 더 안전하다고 느낍니다. 그래도 여전히 같은 효과를 얻을 수 있습니다. – bgoers

+0

이 방법으로 어디를 가는지 알지만 설치 방법이 너무 많아 "여기서는 설치를 수행합니다"부분에서 모두 호출 할 수는 없습니다. 설치 프로그램에있는 몇 가지 버튼을 사용하여 앱을 종료 할 때 설치 프로그램과 영구적으로 이동해야합니다. 앱이 죽은 후에 버튼이 숨겨져 설치 프로그램을 거의 숨길 수 있도록하려면 어떻게해야합니까? 나는이 앱을 App Store에 제출할 것 같지 않은 상태에서 실제 앱에 사용되는 재미있는 테스트 앱으로 만들고 있습니다. –

+0

NSUserDefaults를 검사하는이 방법을 다룰 것입니다. 그러나 모든 것을 구현할 결정에 달려 있습니다. 귀하의 경우, 나는 동일한 검사를 할 것이지만 반대 조건을 확인하십시오 - isInstalled가 true 인 경우 myInstallerButton.hidden = YES를 수행하십시오. 그렇지 않으면 버튼이 계속 표시되고 사용자가 클릭 할 수 있습니다. – bgoers

관련 문제