Контекст В моем приложении есть два UIBarButtonItems
.Если я нажму на первую кнопку, называемую кнопкой сохранения, появится UIActionSheet
и попросит меня сохранить.Когда я принимаю процесс сохранения, фактическое изображение должно быть сохранено в библиотеке.
Когда я нажимаю на вторую кнопку, называемую delete-button, должен запускаться тот же запрос через UIActionSheet
.После принятия операции изображение должно быть удалено.
Для этого у меня есть два метода IBAction
и один для UIActionSheet
.
Реализация методов
-(IBAction)save: (id) sender{
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle: @"Sure to save?"delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: @"Save",@"Cancel",nil];
actionSheet.tag = 100;
[actionSheet showInView:self.view];
[actionSheet release];
}
-(IBAction)bin: (id) sender{
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"Sure to delete?"delegate: self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"Delete",@"Cancel",nil];
actionSheet.tag = 101;
[actionSheet showInView:self.view];
[actionSheet release];
}
В связи с тем, что "willPresentActionSheet" не может быть реализован в классе два раза, я использую теги для обработки кнопки сохранения и удаления.
-(void)willPresentActionSheet:(UIActionSheet*)actionSheet{
if (actionSheet.tag == 100) {
CGRect contextRect = CGRectMake(0, 960, 768, 1004);
UIGraphicsBeginImageContext(contextRect.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image1, nil, nil, nil);
} else if (actionSheet.tag == 101) {
imageView.image = nil;
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Default.png"];
[imageView setImage:[UIImage imageWithContentsOfFile:filePath]];
}
}
Проблема Когда я нажимаю кнопку удаления, появляется actionSheet, но в то же время (до того, как я разрешу удалить) изображение еще удаляется.
Что не так или что я упустил в моих методах?Если нет ясности относительно моего приложения или моей проблемы, не стесняйтесь спрашивать.
Заранее благодарю за помощь