작동하도록 Segues, 봉쇄 컨트롤러 및 스토리 보드를 밀어 얻는 방법 :내가 다음 페이지 흐름 (I 가능한 한 명확하게하려고합니다 그래서 큰 복잡)와 응용 프로그램을 짓고 있어요 함께
로그인 -> MainViewController 이제
는, MainViewController 두 개의 뷰/컨트롤러 호스트로에서 iOS 5에서 컨트롤러 봉쇄를 사용 SecondController에서
MainViewController
/ \
FirstController SecondController --> DetailsController
을, 나는 (당신이 "로 생각할 수있는 별도의 뷰 컨트롤러에 SEGUE 할 details "로 MainViewController를 생각한다면 과").
SecondController에서 DetailsController에 "모달"세그를 사용하여 세그수를 할 수 있습니다. 하지만 iOS가 "팝"할 때 MainViewController가 다시로드됩니다. 나는 그렇게하기를 원하지 않는다.
"push"segue를 사용하면 스택에 UINavigationController가 없다는 런타임 오류가 발생합니다. 벌금.
Login --> UINavigationController --> DetailsController (but "initiated" by Second)
|
MainViewController
/ \
FirstController SecondController
그리고 SecondController에서, 나는 "푸시"SEGUE을 수행 할 수 UINavigationController가 알려주기 :
그래서 내가 뭘하려 옆에 내가 MainViewController 새로운 UINavigationController가의 루트 컨트롤러를 만들려고했다. 하지만 여전히 동일한 런타임 오류가 발생합니다 - UINavigationController를 찾을 수 없습니다.
탐색 스택 작동 방식을 이해하지 않아야합니다. UINavigationController에서 performSegueWithIdentifier :를 호출하기 때문에 호출자를 확인하지 않은 것일 수 있습니다.
"두 번째 iOS 앱"을 가이드로 사용 중이며이 방법 (모달 세그)을 처방합니다. 하지만 모든 가능한 경우 (그것은 비싼 것들을하고있어) MainViewController를 다시로드하고 싶지 않습니다. 내보기/컨트롤러/데이터를 "캐싱"iOS 선호합니다. 물론 세부 정보 페이지를로드 할 때 데이터를 캐시하는 코드를 작성할 수 있으며 다시 팝업 할 때 데이터를 다시 계산하는 대신 캐시를 다시로드 할 수 있습니다. 그러나 "밀어 넣기"Segue가 자동으로이 작업을 수행하기를 바랬습니다.
혹시 의견이 있으시면 고맙겠습니다. 고맙습니다.
"팝백"이라고 말하면 실제로 popViewController : animated :를 사용하고 있습니까? SecondController로 돌아가려면 DetailsController의 [self.presentingViewController dismissModalViewControllerAnimated :]를 시도해 보셨습니까? – rdelmar
미안 해요 - 그게 내가 "팝업 다시"의미 - dismissModalViewControllerAnimated :. "부모"뷰를 강제로 다시로드합니다. – tng