2012-01-12 3 views
0

내 UIViewController는 내 rootViewController에서 함수를 호출합니다.이 함수는 popToRootViewControllerAnimated를 호출하여 뷰를 rootController에 반환합니다. 이 모든 작품 - 위대한!popToRootViewControllerAnimated는 연결된 navigationItem을 수정하지 않습니다

유감스럽게도 UINavigationItem (상단의 툴바)은 방금 제거 된 rootViewController와 UIViewController의 매쉬업을 표시합니다.

무엇을해야합니까? 나는 무엇을 잘못 했는가?

+0

상단의 탐색 표시 줄에 사용자 정의 항목을 추가 했습니까? – Kekoa

+0

rootViewController에는 viewDidLoad에 추가 된 uisegmentedcontrol이 있습니다. 하위보기에서 정상적인 "뒤로"단추를 사용하면 정상적으로 작동합니다. 프로그래밍 방식으로이 버튼을 트리거 할 수 있습니까? – Chris

답변

1

내비게이션 막대는 변경된 사항을 기억하지 않으므로 새 컨트롤러를 밀면 내비게이션 막대가 새보기 컨트롤러의 제목을 제공하도록 변경되지만 그곳에 있던 내용은 저장하지 않습니다 이전보기 컨트롤러 용.

사용자 지정 항목이있는보기 컨트롤러로 돌아올 때마다 도구 모음에서 항목을 다시 만들어야합니다.

viewDidLoad 대신 viewWillAppear에서이 작업을 수행 할 수 있습니다. 정확히 기억할 수는 없지만 새보기 컨트롤러를 눌렀을 때 보존되지 않기 때문에 탐색 도구 모음에서 사용자 지정 컨트롤을 다시 만들어야합니다.

+0

답변 주셔서 감사합니다. - 시도했지만 작동하지 않았습니다. 제네릭 "뒤로"버튼 구현은 어떻게 작동합니까? 수동으로 실행할 수 없습니까? – Chris

+0

뒤로 버튼은 단순히'-popViewControllerAnimated :'를 수행하고, 찾은 것처럼 보입니다. – Kekoa

0

rootViewController에서 popToRootViewController를 호출하면 문제가 해결됩니다. 이를 수정하려면 호출 UIViewController 내에서 다음을 호출하십시오.

[self.navigationController popViewControllerAnimated:YES]; 
관련 문제