2012-03-02 6 views
2

UINavigationController의 스택에서 viewController를 제거하고 싶습니다.UINavigationController의 스택에서 특정보기 컨트롤러를 제거 할 수있는 방법이 있습니까?

가능합니까? UINavigationController.viewControllers는 NSArray 유형이며 변경할 수 없다는 것을 알았습니다.

또한 popViewController() 또는 pushViewController()를 사용하여 스택 (NSArray)을 변경할 수 있음을 알고 있습니다. 그게 어떻게 가능해?

UINavigationController의 특정 viewController를 다른 viewController로 변경할 수 있습니까? 아니면 방금 viewController 스택에서 제거하는 방법은 무엇입니까? 이 동작을 구현하려는 이유를 물어 수 -

NSMutableArray * viewControllers = [ <<navController>>.viewControllers mutableCopy ] 
[ viewControllers removeObject:<<viewControllerToRemove>> ] ; 
navController.viewControllers = viewControllers ; 

그러나 이것은 나에게 "재미"소리 :

답변

5

이 당신이 원하는 무엇을 할 것인가?

+0

감사합니다. 테스트를 마친 후에 왜 내가이 일을하는지 게시 할 것입니다. – Ryan

+0

[viewControllers mutableCopy]는 유형이므로 이처럼 NSMutableArray로 캐스팅합니다. [((NSMutableArray *) [viewControllers mutableCopy] .... 그리고 인덱스 0에서 객체를 제거하려고 시도했지만 객체를 제거 할 수 없었습니다. [navigationController.viewControllers count]가 변경되지 않았습니다 .. – Ryan

+0

캐스트하지 않아도됩니다. 전후에 viewControllers는 무엇입니까? – nielsbot

관련 문제