6

ipad 응용 프로그램을 시작할 때 조건부로 로그인 화면을 표시하려고합니다. 나는 그들이 매번 로그인 할 필요가 없기 때문에, 디폴트 segue의 일부로 만들고 싶지는 않다.ipad 응용 프로그램 시작시 모달보기 표시

내 질문에 numerousexamples이 있지만 모두 ios5보다 앞선 것으로 보입니다. 그러나 스토리 보드를 사용할 때 아무 것도 작동하지 않는 것 같습니다.

는 각 뷰에 텍스트 레이블을 넣어, 스토리 보드 이 * 스토리 보드에 새의 ViewController를 추가하여, * 새로운 단일보기 응용 프로그램을 만들, 그 본질이를 줄이고 그것을 * "loginScreen"의 식별자를 부여하려면 시각적으로 구별하십시오. AppDelegate에의 *는 :

내가 예제 무엇을 본 적이에서
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIStoryboard *storyboard = [self.window.rootViewController storyboard]; 
    UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginScreen"]; 
    [self.window.rootViewController presentModalViewController:loginController animated:TRUE]; 

    return YES; 
} 

, 그 작동합니다. 하지만 여전히 원래 rootViewController의 뷰를 일관되게 표시합니다. 오류는 없습니다.

누구나 내가 (아마도 작은) 것을 지적 할 수 있습니까?

답변

2

didFinishLaunching 방법에서는 앱이 활성 상태가 아닙니다.

이 넣어 적절한 장소

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    UIStoryboard *storyboard = self.window.rootViewController.storyboard; 
    UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginScreen"]; 
    [self.window.rootViewController presentModalViewController:loginController animated:NO]; 
} 
2

@deafgreatdane이다 솔루션에서 모달 어플리케이션 (바람직 할 수있다)을 배경 상태에있는 것을 활성화 될 때마다 뷰 컨트롤러를 제공한다. 내 경우

모달 시작 화면이 한 번만 표시됩니다 있는지 확인 난 그 솔루션에 dispatch_once을 추가 (전용 화면을 실행 한 시간을 표시하려면이 옵션을 사용) :

- (void)applicationDidBecomeActive:(UIApplication*)application 
{ 
    static dispatch_once_t onceToken; 

    dispatch_once(&onceToken,^
       { 
        SomeLaunchViewController* launchViewController = [[SomeLaunchViewController alloc] init]; 
        [self.window.rootViewController presentViewController:launchViewController animated:NO completion:NULL]; 
       }); 
} 

이를 코드 스 니펫은 ARC를 사용합니다.

관련 문제