2012-01-11 3 views
0

이 질문에 대한 답을 쉽게 찾을 수 있다고 생각합니다. 아마도 그 내용을 놓쳤을 지 모르지만, 여기에 있습니다.iOS에서 루트보기를 다시 초기화하십시오.

내 앱에는 메인 뷰가 사용자, 마이크 및 카메라에서 점진적으로 다른 뷰를 통해 수집하는 많은 정보가 표시되는 몇 가지 뷰가 포함되어 있습니다. 그것은 하나의 커다란 클라이맥스 "제출 버튼"으로 끝나기로되어 있습니다. 그 시점에서 데이터는 안전하게 저장됩니다 (현재 SQL 데이터베이스에 있지만 ... 다른 이야기입니다).

일단 완료되면 전체 프로세스를 다시 시작하여 처녀 상태로보기를 다시 초기화해야합니다. 안드로이드에서, 나는 새로운 의도를 던지고 오래된 것을 파괴 할 수있다.

나는 애플 리케이션 대리인 (아래 코드 참조)에서 시작하기로되어있어. 이제 질문은, 내가 여기서 어디로 가야합니까?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]; 
    self.window.rootViewController = self.mainViewController; 
    self.mainViewController.managedObjectContext = self.managedObjectContext; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 
+0

'self.window.rootViewController = newMainViewController; ' – Steve

+0

앱 위임자에서 호출 할 수 있습니까? 모달 뷰 컨트롤러와 유사한 특수 함수를 어떻게 만듭니 까? – Rasman

답변

0

따라서 파고들과 시행 착오를 거친 후에. 나는 내가 원하는 방식으로 작동하는 것을 발견했다. ...

- (void) newScreen 
{ 
    self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]; 
    self.window.rootViewController = self.mainViewController; 
    self.mainViewController.managedObjectContext = self.managedObjectContext; 
} 

는 다음 주 뷰 컨트롤러에서, 나는 파이로 그 기능을

[(AppDelegate *)[[UIApplication sharedApplication] delegate] newScreen]; 

쉬운 전화 :

나는 다음과 같은 실행 애플 대리자에서 특별한 기능을 생성
0

저는 RootViewController를 시작 위치로 만듭니다. rootViewController가로드 될 때 첫 번째 데이터 입력 프로세스를 초기화하고 추가합니다. 이 방법을 사용하면 submitTo를 호출 할 때 popToRootViewController를 호출하고, rootViewContoller가로드 될 때 첫 번째 데이터 입력 프로세스를 초기화하고 다시로드합니다.

관련 문제