Если вы правильно прочитали свой код:
[self.view addSubview:viewcontroller.view];
это не контроллер, который добавляется как подпредставление, а представление, которым он управляет.
Это важный момент,поскольку это означает, что сам контроллер не сохраняется.То, что сохраняется, это представление.
Так что вы можете просто продолжать выпускать viewController
в -dealloc
как обычно:
-(void)dealloc {
[viewController release]; viewController = nil;
...
}
и в ваших viewController
dealloc
вам нужно будет освободить управляемое представление, если вы распределили его вручную (или там, где это имеет смысл для вашего контроллера, если необходимо, чтобы освободить его представление).
С другой стороны, всякий раз, когда ваш superview
после освобождения, также будет выпущено представление, добавленное вами как подпредставление (согласно спецификации Apple поведения addSubview).Так что здесь не о чем беспокоиться.Просто правильно отпустите viewController (и убедитесь, что контроллер представления правильно управляет своим видом).
Еще одно замечание: вам не следует выпускать контроллер представления в viewDidUnload
.