2016-11-24 3 views
4

스토리 보드없이 iOS 앱을 프로그래밍 방식으로 만드는 방법을 가르쳐주는 비디오 자습서를 보았습니다.현재보기가 모두 사라짐

잘 진행되고 있고 그것에 대해 대부분의 일을 좋아하지만 약간의 문제가 있습니다.

내가 절반 방법을 통해, 그리고 난 메모리와 잠재적 인 문제를 발견 한 튜토리얼이 나에게 보여 주었다 방법은 모든 다음 뷰에 대해 내가 지금처럼 제시한다는 것입니다 :

let ChooseCategoryController = ChooseCategoryViewController() 
present(ChooseCategoryController, animated: true, completion: nil) 

후 나는 제시 거기에서보기에서 또 다른 하나. 그리고 돌아가려면 또 다른 견해를 제시하고 있습니다. 나는 메모리 사용량이 올라가고 있다는 것을 앱을 실행할 때 알아 차렸다.

새로운보기를 제공 할 때 어떤보기가 열려 있는지 감지하고 다른 모든보기를 닫을 수있는 방법이 있습니까?

나는 완성 섹션에서 뭔가있을 것이라고 생각했지만, 나는 오히려 새로운 것처럼 고민 중입니다.

미리 감사드립니다.

업데이트 1

아래 해결 방법을 시도한 후 추가하십시오. 나는이 경고를

dismiss(animated: false, completion: { 
     self.present(DisplayQuestionsViewController(), animated: true, completion: nil) 
    }) 

: 엑스 코드는 I에 부탁으로이 코드를

경고 : 0x7fb392e019f0>은보기 : < triviaGameApp.ChooseCategoryViewController에 0x7fb39481ce00> : < triviaGameApp.DisplayQuestionsViewController를 제시하는 시도 창 계층 구조에 없습니다!

관련성이있는 경우. 나는 다음에 이제 코드를 변경

: 아래의 포스터에서 언급 한 바와 같이

dismiss(animated: false, completion: { 
     self.parent?.present(DisplayQuestionsViewController(), animated: true, completion: nil) 
    }) 

이 코드는 ChooseCategoryViewController에 UICollectionView 셀의 클릭()

업데이트 2에 발생합니다. 현재보기 컨트롤러가 닫히지 만 새보기 컨트롤러가로드되지 않습니다.

답변

3

windows에있는 viewControllers을 모두 반복하여 삭제해야합니다. 나는 그것이 위험하고 정말로 추천되지 않는다고 말할 것이다.

나는 이것을 제안하고 싶습니다. 너 dismiss 옛날 컨트롤러와 동시에 present 새로운 컨트롤러.

dismiss(animated: false, completion: { 
    self.parent?.present(MyOtherViewController(), animated: true, completion: nil 
}) 

상기 코드는 현재 ViewController 해제 할 때되도록하여 completion 블록을 사용하는 것이이 경우 다음 하나 MyOtherViewController 즉시 present.

+0

감사합니다. 그냥 튀어 나와야합니다. 나는 그것을 시도하고 결과를 게시 할 것입니다. 모든 작품을 받아 들일 수 있다면 :) – JamesG

+0

업데이트 된 원본 게시물을 참조하십시오. :) – JamesG

+0

안녕하세요, 게시물을 업데이트했습니다.새로운'ViewController'를'parentViewController'를 사용하여 현재의 것이'dismiss'가되도록 제시해야합니다. 그것은 또한 경고가 당신에게 말하려고하는 것입니다. –