2014-12-30 3 views
5

저는 모달 대 세게를 이해하려고 애 쓰고 있고 몇 가지 Q & A를 읽으려는 사람은 thisthis입니다. 이 대답들 중 혼란스러운 점은 입니다. "발표자는 제시 한 VC를 해산시켜야합니다."모달 세그를 닫습니다

예를 들어, 필자가 작성한 예제에서는 사용 가능한 예제 인 here과 같은 UIPageViewController를 보여주고 이름이 "Skip"인 페이지 아래쪽에 단추가 있습니다.

스토리 보드에서 "건너 뛰기"단추에서 다른 "보기 컨트롤러"(우리가 LoginViewController라고합시다)로 segue (모달 유형)를 만들었지 만, 필요한 경우 UIPageViewContoller를 닫아야합니까? 그리고 어떻게?

편집 : 조금 더 읽은 후 , 그것은 LoginViewController 기각의주의를 기울여야한다 (건너 뛰기 버튼이있다) UIPageViewController 보인다 (UIPageViewController 발표자 때문에).

제 경우 로그인이 완료된 후 "Menu"페이지로 이동하고 싶습니다. 그런 다음 어떻게 UIPageViewController에 "LoginViewController"를 닫고 MenuController로 이동하도록 요청할 수 있습니까? 어떻게 작동하는지에 대한 예를 찾을 수 없었습니다. 아무 도움도 인정 될 것입니다!

+1

안녕하세요, 스토리 보드에서 EXIT 기능에 대해 알고 있다면 시도해 볼 수 있습니다. http://stackoverflow.com/questions/12561735/what-are-unwind-segues-for-and-how-do-you-use-them – Deepak

+0

EXIT에 대한 아이디어가 있지만 조금 더 설명해 주시겠습니까? 내가이 사건에서 어떻게 쓸 수 있니? – kosa

+0

실제로 그것이 작동할지 모르지만 EXIT 기능을 사용하면 먼저 UIPageViewController를 닫고 UIPageViewController의 부모 컨트롤러에서 LoginViewController를 호출 할 수 있습니다. – Deepak

답변

5

질문에서 제공 한 자습서 링크에 따라.

해당보기의 상단에, AppViewController의 모든 서브 뷰 위에 건너 뛰기 버튼이 필요하므로, AppDelegate에서 또한 UIPageViewController과에 대한 루트 인 APPViewController 있습니다. 따라서 IBAction 이벤트는 AppViewController에만 있습니다.

이제 AppDelegate self.window.rootViewControllerLoginViewController으로 변경하십시오. LoginViewControllerviewDidLoad 이벤트에서 presentModal UIPageViewController.

[self dismissViewControllerAnimated:YES completion:nil]; 

그래서 자동으로 모든 AppChildViewControllers 기각되고, 뒤에 이미있는 LoginViewController가 표시됩니다

지금 스킵 버튼의 액션 이벤트에서, 당신은 다음과 같이 쓸 수 있습니다.

이것은 목표를 달성하기위한 기본 논리 일 뿐이므로 프로젝트 구현에 따라 코드를 변경해야 할 수도 있습니다.

희망이 도움이됩니다.

+0

고마워요! 내일 한번 해봐. – kosa

+0

@ Nambari : 해결 했니? – Mrunal

+0

흐름 변화가 거의 없기 때문에 "모달"대신 "푸시"를 선택했습니다. 그러나 우리가 "모달"을 사용한다면 여러분의 대답이 해결책이 될 것이라고 생각합니다. 나는 당신의 대답을 받아들입니다. – kosa

0

먼저 UIPageViewController를 닫은 다음 Delegate 또는 Block 메서드 (원하는대로)를 사용하여 부모 컨트롤러에서 건너 뛰기 단추를 누른 다음 LoginViewController를 호출 할 때 알림을받습니다.

관련 문제