모달보기 컨트롤러를 팝하는 기본 창이 있습니다. 이 모달 뷰 컨트롤러에서 완료되면 주 창으로 돌아가서 자체를 닫습니다. 그러면 메인 창에 animated = YES를 가진 새로운 모달보기 컨트롤러가 나타납니다.iPhone - 이전 ModalViewControllerAnimated 닫기 : 예 다음 새 ModalViewControllerAnimated : 예 - 실패합니다.
문제는 첫 번째 modalviewcontroller 내부에서 수행 된 닫기 호출이 둘 다에 적용되고 SecondController가 표시되지 않는다는 것입니다.
부모 호출 전후에 첫 번째 해제는 아무 것도 변경하지 않습니다. 첫 번째 해제가 animate = NO로 설정되면 모든 것이 정상적으로 작동합니다. 하지만 애니메이션이 필요해.
Main.m
- (void) entry {
FirstController *nextWindow = [[FirstController alloc] initWithNibName:@"theNIB" bundle:nil];
nextWindow.caller = self;
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
[self.navigationController presentModalViewController:navController animated:YES];
[nextWindow release];
[navController release];
}
- (void) thingsDoneInFirstModalController:(OBJECT)returnValue retval2:(OBJECT2)returnValue2 {
[self display2ndController];
}
- (void) display2ndController {
SecondController *nextWindow;
nextWindow = [[SecondController alloc] initWithNibName:@"NIB2" bundle:nil];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
[self.navigationController presentModalViewController:navController animated:YES];
[navController release];
[nextWindow release];
}
1 ModalViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.navigationController dismissModalViewControllerAnimated:YES];
[self.caller thingsDoneInFirstModalController:theResult retval2:someMoreResult];
}
내가 무엇을 할 수 있을까요? 나는보기에 무엇이든 잡으려고하지 않습니다. Disapear ...
왜 같은 항해 컨트롤러에서 호출되지 않았습니까?
동일한 버그 (?)를 치는 것을 기억합니다. 짧은 타이머로 두 번째 모달보기를 보여주는 것을 연기했습니다. –