Commit eab0ff97 authored by banchichen's avatar banchichen

修复单独打开预览控制器时的内存泄露问题

parent a42e994c
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = "TZImagePickerController" s.name = "TZImagePickerController"
s.version = "1.3.3" s.version = "1.3.4"
s.summary = "A clone of UIImagePickerController, support picking multiple photos、original photo and video" s.summary = "A clone of UIImagePickerController, support picking multiple photos、original photo and video"
s.homepage = "https://github.com/banchichen/TZImagePickerController" s.homepage = "https://github.com/banchichen/TZImagePickerController"
s.license = "MIT" s.license = "MIT"
s.author = { "banchichen" => "736420282@qq.com" } s.author = { "banchichen" => "736420282@qq.com" }
s.platform = :ios s.platform = :ios
s.ios.deployment_target = "6.0" s.ios.deployment_target = "6.0"
s.source = { :git => "https://github.com/banchichen/TZImagePickerController.git", :tag => "1.3.3" } s.source = { :git => "https://github.com/banchichen/TZImagePickerController.git", :tag => "1.3.4" }
s.requires_arc = true s.requires_arc = true
s.resources = "TZImagePickerController/TZImagePickerController/*.{png,xib,nib,bundle}" s.resources = "TZImagePickerController/TZImagePickerController/*.{png,xib,nib,bundle}"
s.source_files = "TZImagePickerController/TZImagePickerController/*.{h,m}" s.source_files = "TZImagePickerController/TZImagePickerController/*.{h,m}"
......
...@@ -121,11 +121,12 @@ ...@@ -121,11 +121,12 @@
previewVc.photos = [NSMutableArray arrayWithArray:selectedPhotos]; previewVc.photos = [NSMutableArray arrayWithArray:selectedPhotos];
previewVc.currentIndex = index; previewVc.currentIndex = index;
__weak typeof(self) weakSelf = self;
[previewVc setOkButtonClickBlockWithPreviewType:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) { [previewVc setOkButtonClickBlockWithPreviewType:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
if (self.didFinishPickingPhotosHandle) { if (weakSelf.didFinishPickingPhotosHandle) {
self.didFinishPickingPhotosHandle(photos,assets,isSelectOriginalPhoto); weakSelf.didFinishPickingPhotosHandle(photos,assets,isSelectOriginalPhoto);
} }
[self dismissViewControllerAnimated:YES completion:nil]; [weakSelf dismissViewControllerAnimated:YES completion:nil];
}]; }];
} }
return self; return self;
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
UIButton *_originalPhotoButton; UIButton *_originalPhotoButton;
UILabel *_originalPhotoLable; UILabel *_originalPhotoLable;
} }
@property (nonatomic, strong) TZImagePickerController *tzImagePickerVc;
@end @end
@implementation TZPhotoPreviewController @implementation TZPhotoPreviewController
...@@ -38,7 +37,7 @@ ...@@ -38,7 +37,7 @@
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
__weak typeof(self) weakSelf = self; __weak typeof(self) weakSelf = self;
_tzImagePickerVc = (TZImagePickerController *)weakSelf.navigationController; TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)weakSelf.navigationController;
if (!self.models.count) { if (!self.models.count) {
self.models = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedModels]; self.models = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedModels];
_assetsTemp = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedAssets]; _assetsTemp = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedAssets];
...@@ -94,6 +93,7 @@ ...@@ -94,6 +93,7 @@
_toolBar.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:1.0]; _toolBar.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:1.0];
_toolBar.alpha = 0.7; _toolBar.alpha = 0.7;
TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;
if (_tzImagePickerVc.allowPickingOriginalPhoto) { if (_tzImagePickerVc.allowPickingOriginalPhoto) {
_originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom]; _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom];
_originalPhotoButton.frame = CGRectMake(5, 0, 120, 44); _originalPhotoButton.frame = CGRectMake(5, 0, 120, 44);
...@@ -169,6 +169,7 @@ ...@@ -169,6 +169,7 @@
#pragma mark - Click Event #pragma mark - Click Event
- (void)select:(UIButton *)selectButton { - (void)select:(UIButton *)selectButton {
TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;
TZAssetModel *model = _models[_currentIndex]; TZAssetModel *model = _models[_currentIndex];
if (!selectButton.isSelected) { if (!selectButton.isSelected) {
// 1. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制 // 1. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制
...@@ -179,7 +180,7 @@ ...@@ -179,7 +180,7 @@
} else { } else {
[_tzImagePickerVc.selectedModels addObject:model]; [_tzImagePickerVc.selectedModels addObject:model];
if (self.photos) { if (self.photos) {
[self.tzImagePickerVc.selectedAssets addObject:_assetsTemp[_currentIndex]]; [_tzImagePickerVc.selectedAssets addObject:_assetsTemp[_currentIndex]];
[self.photos addObject:_photosTemp[_currentIndex]]; [self.photos addObject:_photosTemp[_currentIndex]];
} }
if (model.type == TZAssetModelMediaTypeVideo) { if (model.type == TZAssetModelMediaTypeVideo) {
...@@ -187,12 +188,12 @@ ...@@ -187,12 +188,12 @@
} }
} }
} else { } else {
NSArray *selectedModels = [NSArray arrayWithArray:self.tzImagePickerVc.selectedModels]; NSArray *selectedModels = [NSArray arrayWithArray:_tzImagePickerVc.selectedModels];
for (TZAssetModel *model_item in selectedModels) { for (TZAssetModel *model_item in selectedModels) {
if ([model.asset isEqual:model_item.asset]) { if ([model.asset isEqual:model_item.asset]) {
[self.tzImagePickerVc.selectedModels removeObject:model_item]; [_tzImagePickerVc.selectedModels removeObject:model_item];
if (self.photos) { if (self.photos) {
[self.tzImagePickerVc.selectedAssets removeObject:_assetsTemp[_currentIndex]]; [_tzImagePickerVc.selectedAssets removeObject:_assetsTemp[_currentIndex]];
[self.photos removeObject:_photosTemp[_currentIndex]]; [self.photos removeObject:_photosTemp[_currentIndex]];
} }
} }
...@@ -218,6 +219,7 @@ ...@@ -218,6 +219,7 @@
} }
- (void)okButtonClick { - (void)okButtonClick {
TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;
if (_tzImagePickerVc.selectedModels.count == 0) { if (_tzImagePickerVc.selectedModels.count == 0) {
TZAssetModel *model = _models[_currentIndex]; TZAssetModel *model = _models[_currentIndex];
[_tzImagePickerVc.selectedModels addObject:model]; [_tzImagePickerVc.selectedModels addObject:model];
...@@ -226,7 +228,7 @@ ...@@ -226,7 +228,7 @@
self.okButtonClickBlock(_isSelectOriginalPhoto); self.okButtonClickBlock(_isSelectOriginalPhoto);
} }
if (self.okButtonClickBlockWithPreviewType) { if (self.okButtonClickBlockWithPreviewType) {
self.okButtonClickBlockWithPreviewType(self.photos,self.tzImagePickerVc.selectedAssets,self.isSelectOriginalPhoto); self.okButtonClickBlockWithPreviewType(self.photos,_tzImagePickerVc.selectedAssets,self.isSelectOriginalPhoto);
} }
} }
...@@ -275,6 +277,7 @@ ...@@ -275,6 +277,7 @@
#pragma mark - Private Method #pragma mark - Private Method
- (void)refreshNaviBarAndBottomBarState { - (void)refreshNaviBarAndBottomBarState {
TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;
TZAssetModel *model = _models[_currentIndex]; TZAssetModel *model = _models[_currentIndex];
_selectButton.selected = model.isSelected; _selectButton.selected = model.isSelected;
_numberLable.text = [NSString stringWithFormat:@"%zd",_tzImagePickerVc.selectedModels.count]; _numberLable.text = [NSString stringWithFormat:@"%zd",_tzImagePickerVc.selectedModels.count];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment