2012-10-05 3 views
1

Instapaper 및 Twitterrific과 같은 앱이 탐색 스택의 루트보기가 아닌보기로 실행됩니다. 초기보기에는 이미 뒤로 버튼이 있기 때문에 이것을 알고 있습니다. Instapaper는 한 단계 깊은 (Instapaper> 나중에 읽음) 및 Twitterific 두 단계로 깊이 들어갑니다 (계정> 계정> 모든 트윗). 보기 I 사이에 충돌의 가능성을 줄이기 위해 하나의 계정에 새 상태 복원 API를 복용하는 동안이를 않습니다 스토리 보드 (아마도 pushViewController:animated: 또는 performSegueWithIdentifier:sender:) 방법을 사용하여이 동작을 달성하기 위해 가장 효율적인/권장되는 방법을 무엇UINavigationController Stack

제시하고 싶고 상태 복구 프로세스가 제시하고자하는 것이 있습니까?

답변

0

스토리 보드를 통해서만 섹슈를 시작할 수는 없으므로 코드를 작성해야합니다. 그리고 코드를 작성함으로써, 아마도 UINavigationController-setViewControllers:animated: 메소드를 사용하고 싶을 것입니다. 왜냐하면 segues는 일반적으로 좋은 애니메이션 트랜지션과 초기 UI 설정을 만드는 데 사용되기 때문입니다. 뷰 제어기는 상기 계층 구조에서 두 번째 인 경우

+0

내 질문에 대한 오해가있을 수 있습니다. 나는 네비게이션 스택의 루트 뷰보다 적어도 한 단계 더 깊은 뷰를 실행하는 가장 좋은 방법은 무엇인지 물어 본다. (예를 들어 언급 한 것과 같은 방식으로) 새로운 상태 복원 API. –

+1

'UINavigationController' 스택을 두 번째 VC까지 보존하고 복원하고 스토리 보드에서 초기보기 컨트롤러로 만들 것을 제안합니다. 이렇게하면 응용 프로그램을 시작한 후에 이미 탐색 스택을 설정하게됩니다. –

+0

다시, 내가 묻는 것을 이해하고 있는지 확신 할 수 없습니다. 시작시 네비게이션 컨트롤러가 자동으로 두 번째 컨트롤러로 점프하여 뒤로 컨트롤러가 첫 번째 컨트롤러로 다시 돌아 오도록 설정해야합니다. 또한 새로운 상태 복원 API와 충돌하지 않는 방식으로이 작업을 수행하려고합니다. –

1

, 단순히 UINavigationController- (void)pushViewController:animated: (animated:NO)와 그 viewDidLoad 방법에서 호출 것이다. 그것이 더 깊다면 밀어 넣기 대신 - (void)setViewControllers:을 입력하십시오.

+0

감사합니다. Rudolf; 이것이 제가 처음 생각한 것입니다, 그렇다면 국가 복원과 충돌하지 않을까요? –

+0

솔직하게 말해서, 나는 국가 회복을 아직하지 못했습니다. 어쩌면 당신은 네비게이션 컨트롤러 (최상위 컨트롤러와 같은)를'application : didDecodeRestorableStateWithCoder :'에서 확인하고 무엇을 할 것인지 결정할 수 있습니다. –

+0

죄송합니다. 죄송합니다. 귀하의 질문을 신중하게 읽지는 않았으므로, 국가 복구 작업에 대해 언급하지 않았습니다.어쨌든, 좋은 질문입니다. –