먼저 사용자에게 로그인 윈도우를 제공하는 iOS 5 응용 프로그램에서 작업하고 있습니다. 로그인에 성공하면 실제 앱의 대량을 포함하는 UINavigationController를 표시하는 모달 전환 (Modal Segue)이 수행됩니다. 이제부터는 많은 점이 발생할 수 있지만, 사용자가 로그 아웃하기로 결정할 때 관심이 있습니다.모달 상영 된 UINavigationController 팝업
첫 번째보기 인 로그인 창으로 돌아가고 싶지만 탐색 컨트롤러가 튀어 나와 첫 번째보기로 돌아갈 수 없습니다. 시각화로
: 나는 모달 발표 된 네비게이션 컨트롤러를 기각하는 시간이라는 초기 로그인보기를 통보, 위임을 시도했습니다 (NavigationController)
[UserLoginViewController] --modal segue-> [UserMenuTableViewController] --push segue--> [otherviews, etc]
^ |
| modal segue
| |
| v
^ [UserDashBoardViewController]
| |
| (logout pressed)
| |
-<---------------pop back to login--------------<-
,하지만 난 오류 얻을 :
2012-09-10 11:13:05.749 KITxWebMobileJSONv4[1138:f803] attempt to dismiss modal view controller whose view does not currently appear. self = <UINavigationController: 0x68c6150> modalViewController = <UserDashboardViewController: 0x68d9fb0>
2012-09-10 11:13:05.749 KITxWebMobileJSONv4[1138:f803] attempt to dismiss modal view controller whose view does not currently appear. self = <UserLoginViewController: 0x688ffa0> modalViewController = <UINavigationController: 0x68c6150>
을
[로그인보기 대표단은 다음과 같습니다 : ADVA의
// This method is called from the UserMenuTableViewController, when it's time to log out:
- (void)userMenuTableViewController:(UserMenuTableViewController *)sender
loggedOut:(BOOL)didLogOut
{
if (didLogOut) {
/* delete user info and take care of data on backend:
* ...
*/
// pop navigation controller, presenting the initial Login View:
[self dismissModalViewControllerAnimated:YES]; // THIS LINE FIRES AND GETS THE ERROR ABOVE
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Login Success"]) { // successful login:
// set (UINavigationController *)self.nav to the segue destination (for a handle, if needed):
self.nav = (UINavigationController *)segue.destinationViewController;
// grab the user menu and set self to be it's delegate:
UserMenuTableViewController *userMenu = [self.nav.viewControllers lastObject];
userMenu.delegate = self;
}
}
감사합니다 nce! 당신이있는 navigationController을 팝업 할 위치
오류 메시지에'UserDashboardViewController'가 언급되어 있지만 귀하의 게시물에 다른 언급이 없습니다. 'UserDashboardViewController'는 어떻게 표시됩니까? 'UserMenuTableViewController'와의 관계는 무엇입니까? –
dismissModalViewControllerAnimated를 호출하기 전에 NavController의 스택에서 수동으로 모든 ViewController를 팝업하고 있습니까? [This] (http://stackoverflow.com/questions/3988432/two-modalviewcontroller) 질문은 여러 개의 해제 호출을 동시에 실행하려는 경우 문제가있는 유사한 상황 (여러 개의 모달 ViewController를 허용하는 체인 임에도 불구하고)을 처리합니다. – Xono
네비게이션 컨트롤러와 어떻게 구별합니까? – Neo