i using pretty same code load uiviewcontroller (called lessonscrollview) uiscrollview. method called when in scrollviewdidscroll method
- (void)loadscrollviewwithpage:(int)page { if (page < 0) return; if (page >= numpages) return; lessonscrollview *controller = [imageviewcontrollers objectatindex:page]; if ((nsnull *)controller == [nsnull null]) { controller = [[lessonscrollview alloc] initwithpage:page forlesson:[self title]]; [imageviewcontrollers replaceobjectatindex:page withobject:controller]; [controller release]; } if (controller.view.superview == nil) { cgrect frame = cgrectmake(0, 80, 320, 285); frame.origin.x = frame.size.width * page; frame.origin.y = 0; controller.view.frame = frame; [scrollview addsubview:controller.view]; }
}
in circumstances have quite few pages, believe, remain in memory until uiviewcontroller responsible scrollview released (or memory warning occurs).
my question is, how release lessonscrollview object. call method called,
- (void)unloadscrollviewwithpage:(int)page
in scrollviewdidscroll , page current page - 1.
thanks can offer.
try this:
[controller.view removefromsuperview];//to release controller's view [imageviewcontrollers replaceojectatindex:page withobject:[nsnull null]];//to release actual controller should lead being dealocated
Comments
Post a Comment