0

사용자가 처음 앱을 시작할 때만 표시되는 일회성 계약보기가 있습니다.iOS Storyboard AppDelegate에서 단절이없는보기로 전환

스토리 보드 IOS 5.1을 사용하고 My rootview는 navigationviewcontroller입니다. 내 계약보기 난 그냥 modalview 다음 뷰 기각 팝업 제시 할 탐색 controoler와 아무 관련이 없습니다 : enter image description here

내가 다음 코드를 사용하지만이하지 않는 어떤 응용 프로그램 그냥 계속 내가 플래그를 넣어 navigationviewcontroller 출시, 예 응용 프로그램은 if 문을 입력합니다. :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
     if(login==ok){ 
     UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard; 
     UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"AgreementViewController"]; 
     [self.window.rootViewController presentModalViewController:loginController animated:YES]; 
     } 
return YES; 

} 

어떻게 스토리 보드에 연결되어 있지 않은 viewcontroller를 전환하고 닫을 수 있습니까?

답변

2

내가 지난 주말에 작업 한 적이있는 앱에서 비슷한 상황이 발생했습니다. 나는 가이드 설치를 위해 처음으로 별도의 스토리 보드를 보여주고 싶었습니다. 내 코드가 너와 거의 같았고 디버깅 할 때 경고 메시지를 보냈습니다. 이것은 일회성 ViewController를 표시하려고하는 rootViewController가 앱의이 시점에서 표시되지 않기 때문입니다.

따라서 한 번보기 컨트롤러를 rootViewController에 "표시"하는 대신 한 번보기 컨트롤러를 rootViewController로 설정하기로 결정했습니다. 뭔가처럼 경우 은은 다음과 같습니다

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    if(login == ok) { 
     UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard; 
     UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"AgreementViewController"]; 
     [self.window setRootViewController:loginController]; 
    } 

    return YES; 
} 

을 닫으려면, 당신은 아마 당신의 첫 번째보기 컨트롤러에 한 번 뷰 컨트롤러에서 SEGUE를 추가 할 수 있습니다 또는 당신이 유사한 코드를 사용하여 문제.

또 다른 접근법은 AppDelegate가 아닌 첫 번째 "일반"보기의 viewDidAppear에서 확인 및보기 전환을 수행하는 것입니다.

바라기를 이것은 올바른 방향으로 당신을 가리킬 것이다.