사용자가 처음으로 내 앱을 열어 기본 기능에 대해 알리기 위해 UIalert를하고 싶지만 앱을 열거 나 홈 화면을 다시로드 할 때마다 표시하지 않으려합니다. 나는 다른 애플 리케이션에서 이것을 보았지만 그것에 대해 갈 가장 좋은 방법이 무엇인지 모릅니다. 누군가가 이것에 올바른 방향으로 나를 가리킬 수 있다면 그것은 인정 될 것이다.한 번만 UIAlert?
답변
스틱이 당신에 앱에 위임 에서 - (무효) 아래 applicationDidFinishLaunching : (UIApplication ) 응용 프로그램 방법
BOOL hasRunBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"FirstRun"];
if (!hasRunBefore) {
UIAlertView *firstRun = [[UIAlertView alloc] initWithTitle:@"Virgin" message:@"Hello World!!" delegate:nil cancelButtonTitle:@"Done" otherButtonTitles:nil];
[firstRun show];
[firstRun release];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstRun"];
}
else if (hasRunBefore) {
//can do some else if run before
}
기본적으로이 무엇 NSUserDefaults의 핵심 "FirstRun"에 대한 검사가 유사하다 버전 번호 등으로 수정 될 수 있습니다. 예를 들어 각 업데이트 후에 새로운 알림을 원한다면 말하십시오. 그런 다음 키가 다른 (! hasRunBefore)이 없는지 검사하고 존재하지 않으면 (이전에 실행 된 적이없는 경우) UIAlertView를 만든 다음 해당 키에 대해 YES를 설정합니다 (프로세스에서 해당 케이트를 생성 함).
이전에 앱을 시작한 적이 있다면 "[NSUserDefaults standardUserDefaults]"를 사용하여 부울을 작성하십시오.
나는 좀 새로운 편이야. 당신이 저에게 모범을 보여줄 수 있다면 그것은 정말로 나를 도와 줄 것입니다. 걱정하지 않으면. 도와 주셔서 감사합니다. – HenryGale
I 내 메인 화면의 viewDidLoad 메소드에서 NSUserDefaults를 사용하십시오. 따라서 앱이 시작되고 기본 화면이로드 될 때마다 사용자의 첫 번째 시간을 확인합니다. 다음
- (void)viewDidLoad {
BOOL tempBOOL = [[NSUserDefaults standardUserDefaults] boolForKey:@"hasSeenOpeningAlert"];
if (!tempBOOL) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome To My App" message:@"This app will ... First you need to ..." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
}
[super viewDidLoad];
}
과 :
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
Edit *editViewController = [[[Edit alloc] initWithNibName:@"Edit" bundle:nil]retain];
[self.navigationController presentModalViewController:editViewController animated:YES];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasSeenOpeningAlert"];
[[NSUserDefaults standardUserDefaults] synchronize];
[editViewController release];
}
- 1. progressView가 값에 도달 한 후 UIAlert
- 2. Jquery, 방법은 한 번만 inital 페이지로드에 한 번만 사용 하시겠습니까?
- 3. 레이크 한 번만 수행
- 4. jQuery에서 한 번만 수행
- 5. div를 한 번만 표시
- 6. 쿠키 - 한 번만 투표
- 7. 타이머가 한 번만 작동합니다.
- 8. 한 번만 메시지 보이기
- 9. 하루에 한 번만 삽입
- 10. 활동은 한 번만 호출해야합니다.
- 11. 한 번만 배경을 칠하십시오
- 12. 데이터베이스에 한 번만 삽입하십시오.
- 13. set_table_name은 한 번만 작동합니까?
- 14. 플레이어가 한 번만 멈춤
- 15. jQuery를 - Fadein 한 번만
- 16. 앱이 하루에 한 번만
- 17. 클래스를 한 번만 초기화하십시오.
- 18. link_to_remote를 한 번만 클릭하십시오
- 19. JOIN; 한 번만 기록하십시오!
- 20. Facebox는 한 번만 작동합니다.
- 21. 변수는 한 번만 사용됩니다.
- 22. UpdatePanel은 갱신 한 번만
- 23. XML 스키마 한 번만
- 24. jQuery - 한 번만 수행
- 25. viewWill 한 번만 호출됩니다.
- 26. 스레드가 한 번만 실행됩니다
- 27. 타이머를 한 번만 사용하십시오.
- 28. presentModalViewControlover는 한 번만 작동합니다.
- 29. 한 번만 전체 사용
- 30. matplotlib은 한 번만 플롯합니다
확인 [이] (http://stackoverflow.com/questions/308832/iphone-the
이 내가 내 응용 프로그램에서 그것을 할 방법입니다 -quickest-easy-way-to-detect-first-launch) 아웃. –