2014-07-10 7 views
1

10 개의 장면으로 구성된 스토리 보드 앱이 있습니다.segue .. 어디서나 첫 번째 장면까지 (applicationDidBecomeActive 이후)

PreToFront, UserToBombs, BombsToPre 등과 같은 잡다한 부분이 있습니다.

enter image description here

내 문제 : 사용자가 응용 프로그램을 종료 말 (내 말은, 아이 패드의 홈 버튼을 누르면).

사용자가 다시 앱 applicationDidBecomeActive을 엽니 다

...

내가 상관없이 초기 현장에 가서 무엇을, 원하는 없습니다.

다시 말해서 사용자가 어떤 장면에 있더라도 응용 프로그램이 열리면 특정 장면으로 이어지고 싶습니다. (실제로 이상적인 초기 장면)

어떻게이 작업을 수행 할 수 있습니까? 당신을 alivingston 위 말한다보다 더 복잡한 논리가 필요하면

-(void)applicationDidBecomeActive:(UIApplication *)application { 

    [self presentViewControllerAnimated:NO]; 

} 


- (void)presentViewControllerAnimated:(BOOL)animated { 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil]; 
    UINavigationController *destinationViewNavigationController = [storyboard instantiateViewControllerWithIdentifier:@"destination"]; 
    [self presentViewController:destinationViewNavigationController animated:animated completion:nil];  
} 
+0

초기보기 컨트롤러가 'UINavigationController'입니까? – spassas

+0

내가 조사 할이 모든 위대한 답변에 감사드립니다 !! – Fattie

+0

@JoeBlow - 당신의 도움이 필요합니다. 이메일로 알려 드릴까요? – Patricia

답변

1

이 솔루션은 segues을 사용하지 않는,하지만 난 당신이 원하는 뷰 컨트롤러에 ID를 제공하면 작동 할 수 있다고 생각 Unwind Segues을 사용할 수 있습니다.

1) 당신이 아래로 가고 싶어 뷰 컨트롤러에서이 방법을 구현 :

- (IBAction)unwind:(UIStoryboardSegue *)unwindSegue 

2) 위의 뷰 컨트롤러를 이름 언 와인드이 뷰 컨트롤러인터페이스 빌더에서이 방법 segues 만들.

3) applicationDidBecomeActive 탑 뷰 컨트롤러를 얻으십시오.

UIViewController* topController = self.window.rootViewController; 
if (topController.presentedViewController) topController = topController.presentedViewController; 

4) 코딩

해피 특정 식별자 topController - (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender 전화 : (재귀을 제시 뷰 컨트롤러를 받아야하는 하지만 명심)이처럼!

1

:

3

응용 프로그램의 첫 번째보기 컨트롤러로 '재설정'이외의 세부 사항이 활성화되지 않았 으면 다음 작업이 필요할 수 있습니다. 귀하의 응용 프로그램이 UINavigationController가 기반으로하는 경우

-(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    UIStoryboard *storyboard = self.window.rootViewController.storyboard; 
    UIViewController *firstViewController = [storyboard instantiateInitialViewController]; 
    self.window.rootViewController = firstViewController; 
} 

, 당신은 단지 applicationDidBecomeActive:[mainNavigationController popToRootViewControllerAnimated:YES]를 호출 할 수 있습니다.

관련 문제