2009-09-22 7 views
3

그래서 오류가 발생하면보기 컨트롤러를 스택에서 꺼내려고하는데 한 번에 너무 많이 터지는 것처럼 보입니다. 상단의 탐색 표시 줄은 제목과 버튼을 잃지 만 이전 테이블보기 데이터는 계속 표시됩니다. 합니다 (XIB에서로드)UINavigationController popViewController가 모든 것을 팝합니다!

  • 탭보기 템플릿
    • 네비게이션 컨트롤러
      • 보기 컨트롤러
      • : 무슨 일인지 모른다 ...

        기본 셋업이 없다

      • 컨트롤러보기 (밀어 넣고, 무엇을 팝업하고 싶은지)
    • 여기

617,451,515,코드입니다 :

NSLog(@"%@", [[self navigationController] viewControllers]); 
[[self navigationController] popViewControllerAnimated:NO]; 
NSLog(@"%@", [[self navigationController] viewControllers]); 

결과 NSLog의 쇼 :

2009-09-22 19:57:14.115 App[34707:550b] (
    <MyViewController: 0xd38a70>, 
    <MyViewController: 0xd36b50> 
) 
2009-09-22 19:57:14.115 App[34707:550b] (null) 

사람이 경험이? 이 작업을 수행하는

답변

1
[[self navigationController] popViewControllerAnimated:NO]; 
//here you pop **self** from navigation controller. And now 
[self navigationController] == nil; 
// And 
[nil viewControllers] == nil 

봅니다 :

UINavigationController *nc = [self navigationController]; 
NSLog(@"%@", [nc viewControllers]); 
[nc popViewControllerAnimated:NO]; 
NSLog(@"%@", [nc viewControllers]); 
+0

좋아, 이것은 전체 스택을 비우지 않음을 보여줍니다. 하지만 여전히 원하는 효과가 없습니다. UITableView는 네비게이션 컨트롤이 사라지는 동안 남아 있습니다 (그러나 배경 그라디언트는 "바"로 남음). –

0

어떤 문제가 있습니까?

[self.navigationController popViewControllerAnimated:NO]; 

또한, 당신은 당신이 스택에 ViewController을 밀어 방법을 확인 할 수 있습니다. 뭔가 소리가 나지 않습니다.

1

해결했습니다. 뷰를 팝하는 코드가 viewDidLoad에서 호출되었습니다. 이것은 뷰가 실제로 완전히 애니메이션으로 처리되기 전에 팝핑 된 것을 의미합니다.

나는이 코드를 viewDidAppear로 옮겼으며 지금은 광고 된대로 작동합니다.

4

난 그냥 tableView:didSelectRowAtIndexPath: 전화에서 전화 대리인의 내부

[self.navigationController popViewControllerAnimated:YES]; 

를 사용하여 몇 가지 이상한 UINavigationController 스택 동작을보고하고있다.

보기가 올바르게 작동하지 않으며 "뒤로"작업이 제공된 UINavigationController이이 델리게이트의보기를 제대로 팝하지 못하고 다른 수준으로 되돌아갑니다.

은 내가 대신
[self.navigationController popToViewController:self animated:YES]; 

를 사용한 경우, 그 갑자기 모든 것이 잘 작동 것을 발견했다. 이것은 ARC가 켜진 상태의 응용 프로그램에 있습니다.
그래서, 나는 그 pop에 의해 "unreferenced"가 될 view controller를 pop 할 때 특정 view controller로 다시 pop하라고 지시하지 않는다면 올바르게 발생하지 않는 reference housekeeping이 있다는 것을 단지 추측 할 수 있습니다.

관련 문제