我在尝试UICollectionView
从我自己的UIActivity
.
文件集合控制器.h
@property(nonatomic,weak) IBOutlet UICollectionView *collectionView;
此集合视图使用文件路径来显示图像。
文件集合控制器.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]
我的FilesCollectionControllerUIActivity
,所以我的集合视图会立即更新......