저는 iOS 개발에 익숙하지만 Obj-C의 메모리 관리 기본 지식에 익숙합니다. 그러나, 사용자 정의 UIViewControllers에 대한 애플의 문서는 나를 조금 혼란스럽게 만들었다.사용자 정의 UIViewController의 메모리 관리
그래서 EntryViewController
개의 배열을 저장하는 PagingController
이 있습니다. (그들은 모두 UIViewController입니다.) 이러한 개체는 동적으로로드되며, 물론 적절할 때 릴리스됩니다. 문서가 말한대로 PagingController
의보기가 -loadView
에 생성되고 self.view
에 저장됩니다.
EntryViewController
(예 : ctrl
)을로드 할 때마다 [self.view addSubview:ctrl.view];
으로 전화합니다. 대상 OS가 3.0이고 개인 변수 (_parentViewController
)를 수정하고 싶지 않기 때문에 ctrl.parent = self;
으로 전화해야합니다. (parent
는 @property(assign) PagingController *parent;
로 정의된다) 여기
제 질문은 다음과 같습니다
- 나 자신을
self.view
을 해제, 또는 UIViewController에 그 처리를 취하고 있습니까? parent
(보유 자산은EntryViewController
)을 보유해야합니까? 모든 자식 뷰 컨트롤러는 부모가 언로드 될 때 해제되기 때문에 나는 무의미하다고 가정합니다.-dealloc
메서드에서[self.view removeFromSuperview]
을EntryViewController
으로 호출해야합니까? 문서에서 모든 하위 뷰를 관리해야하므로 자동으로 호출되는지 확실하지 않습니다.
아니면 처음에는 맞춤보기 컨트롤러를 만드는 방법에 대해 혼란 스럽습니까?
타게팅 3.0? 정말? – jrturton
이 질문에 대한 정답을 공유하십시오. 나는 또한 그것을 알고 싶습니다. – Krrish
@jrturton 실제로 3.2입니다. 그러나 제 점은 '-addChildViewController'는 5.0 이후에만 사용 가능하다는 것입니다. 나는 4.x 사용자를 제외하고 싶지 않다. – vbwx