0

로 돌아 나는 그렇게처럼 내 애플 대리자에서 RootViewController을 만들어로그 오프 iOS 앱과 RootViewController

- (IBAction) logoutButtonPressed:(UIButton *)sender 
{ 
    [Users logOut]; 

    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 

아이폰 4 (아이폰 6이 도착했을 때 테스트)에서 실행하면 정상적으로 작동하지만, 하루 이상 로그인 한 상태에서 로그 아웃 버튼을 클릭하면 화면이 검게 변합니다.

24 시간 정도 후에 내 루트보기 컨트롤러가 내 startviewcontroller를 호출하지 않는 이유는 무엇입니까?

+0

누구에게 조언이 있습니까? – cdub

+0

viewcontroller가 할당 해제 된 것으로 의심됩니다? 보십시오 (UIViewController * 컨트롤러 self.navigationController.viewControllers) {NSLog (@ "클래스 % @", NSStringFromClass ([컨트롤러 클래스]); } 로그 아웃 기능에서. 그것이 존재하는지 확인 – iphonic

+0

할당 해제는 내 추측이 될 것입니다. 어떻게하면 StartViewController * viewController = [[StartViewController alloc] init]을 만들 수 있습니까? self.navigationcontroller에 추가 하시겠습니까? 그것이 없으면 확인하나요? – cdub

답변

1

나는 대답을하려고 노력하고있다. 나는 그것이 당신을 위해 일해야한다고 생각한다. 먼저 StartViewController이 navigationController 스택에 있는지 여부를 확인합니다. 귀하의 스택에 따라 StartViewController은 첫 컨트롤러가 navigationController에 추가되어야합니다.

StartViewController *loginController=[self.navigationController.viewControllers objectAtIndex:0]; 


if(loginController){ 
    [self.navigationController popToViewController:loginController animated:YES]; 
}else{ 
    NSMutableArray *controllers=[[NSMutableArray alloc] init]; 

    loginController=[[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil]; 
    [controllers addObject:loginController]; 
    [controllers addObjectsFromArray:self.navigationController.viewControllers]; 
    self.navigationController.viewControllers=[[NSArray alloc] initWithArray:controllers]; 
    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 

제대로 작동해야한다고 생각합니다.

건배.

+0

내 응용 프로그램이 잘 작동하는지 확인하려면 manana를 깨울 때 논리적으로 보입니다. 시뮬레이터가 펑키 한 일을합니까? 내 아이폰 4s 장치 에서이 응용 프로그램을 실행 해요. – cdub

+0

@chris 그런 문제가 발생하지 않았으므로 확인해야합니다. – iphonic