2016-12-07 4 views
0

UIPageView 인 튜토리얼을 첫 번째 시작시 한 번만 표시하려고합니다.처음 실행시 UIPageViewController를 한 번만 표시하는 방법

나는 그것이 UIPageController와 함께 작동하지 않는 몇 가지 이유를 들어이 코드

let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore") 
    if launchedBefore { 
     performSegue(withIdentifier: "tutorialtohome1", sender: nil) 
    } 
    else { 
     UserDefaults.standard.set(true, forKey: "launchedBefore") 
    } 

를 사용하여이를 시도하고, 다른 전망을 잘 작동합니다.

단지이보기가 자습서 역할을하기 때문에 한 번 표시 한 다음 다시는 표시하지 않기를 바랍니다.

제안 사항?

감사합니다.

+0

여기서 "launchBefore"키의 값을 설정합니까? –

+0

최초 발사시 또는 첫 발사 후 시구를 발사 하시겠습니까? – Paulw11

+0

첫 번째 출시 이후에 segue가 수행되기를 원하기 때문에 튜토리얼을 건너 뛰십시오. – Khoury

답변

3

OBJECT를 확인해야합니다. bool이 아닙니다. 이것이 더 좋은 방법입니다. 처음 실행하면 "lauchedBefore"와 같은 키가 없습니다. 거기에없는 것의 부울 값을 확인할 수 없습니다.

let launchedBefore = UserDefaults.standard.object(forKey: "launchedBefore") 

    if (launchedBefore==nil) { 
     performSegue(withIdentifier: "tutorialtohome1", sender: nil) 
     UserDefaults.standard.set(true, forKey: "launchedBefore") 
    } 
    else { 
     // already launched, so do nothing. 
    } 
+1

이것은 좋은 대답입니다. Khoury, 당신의 논리는 옳지 않지만이 코드는 효과가 있습니다. (투표 됨) –

+0

'boolForKey'는 선택 사항을 반환하지 않습니다. 키가 사용자 기본값에 정의되어 있지 않으면'false'를 반환합니다. 첫 번째 발사시 또는 첫 발사 후 발사해야하는지 여부는 의문으로는 분명하지 않습니다. – Paulw11