У меня возникли проблемы с удалением нескольких объектов, выбранных в UICollectionView
, из моего собственного UIActivity
.Удалить объекты в CollectionView из UIActivity
FilesCollectionController.h
@property(nonatomic,weak) IBOutlet UICollectionView *collectionView;
Этот вид коллекции использует пути к файлам, чтобы показать изображения.
FilesCollectionController.m
...
ActivityTrash *trash = [[ActivityTrash alloc] init];
NSMutableArray *customActivities = [[NSMutableArray alloc] initWithObjects:trash, nil];
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:objectsSelected applicationActivities:customActivities];
UINavigationController *destNav = [[UINavigationController alloc] initWithRootViewController:controller];
...
// Present the Navigation controller
[self presentViewController:destNav animated:YES completion:nil];
ActivityTrash.h
@interface ActivityTrash : UIActivity
@property(nonatomic,retain) NSMutableArray *objectsToDelete;
@end
ActivityTrash.m
@implementation ActivityTrash
- (NSString *) activityTitle {
return @"Delete";
}
- (UIImage *) activityImage {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
return [UIImage imageNamed:@"ipadTrash"];
}
else
{
return [UIImage imageNamed:@"iphoneTrash"];
}
}
- (BOOL) canPerformWithActivityItems:(NSArray *)activityItems
{
return ([activityItems count] != 0);
}
- (void) prepareWithActivityItems:(NSArray *)activityItems
{
self.objectsToDelete = [[NSMutableArray alloc] init];
for (NSURL *url in activityItems) {
[self.objectsToDelete addObject:[url path]];
}
}
- (UIViewController *) activityViewController
{
return nil;
}
- (void)performActivity {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Delete file(s)"
message:@"Are you sure ?"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStyleDefault;
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
// If the user pressed ok, delete each image which path is in objectsToDelete
if (buttonIndex == 1) {
for (NSString *pathImage in self.objectsToDelete) {
[DocumentManager deleteImageWithPath:pathImage];
}
}
[self activityDidFinish:YES];
}
Файлы фактически удалены. Но проблема в том, что я хотел бы назвать [self.collectionView reloadData]
в моем FilesCollectionController сразу после UIActivity
сделал отделка, и поэтому мой взгляд коллекция будет обновляться сразу ...
Что такое 'UIActivity'? Вы имеете в виду 'UIAlertView'? – rmaddy
@rmaddy Мы можем сказать, что UIActivity заканчивается после нажатия пользователем одной кнопки UIAlertView – EricBncci