addsubview 加载view和控件的区别
问题:
当用addsubview加载控件时,addsubview后就可以release的;但当加载的是view视图时,如果你现在release或者autorelease,当这个加载的view调用removeFromSuperview方法返回时则会出错,如果不release或者autorelease则view返回时不会调用dealloc方法,造成没有释放view里的资源。
解决之道:
在调用的removeFromSuperview方法后再调用release即可。
如下:
加载view
ShowImageViewController *showImageViewController = [[ShowImageViewController alloc] init]; showImageViewController.showdelegate = self; [[self appDelegate].window //可以这样在用addsubview跳转界面中使用动画,这个动画是让view加载的时候会用下往上移动 showImageViewController.view.frame = CGRectMake(0, 480, 320, 460); [[self appDelegate].window addSubview:showImageViewController.view]; [UIView animateWithDuration:0.3 animations:^{ showImageViewController.view.frame = CGRectMake(0, 20, 320, 460); }];
view返回
[self.view removeFromSuperview];
[self release];