PhotoHandoff/AAPLAppDelegate.m
/* |
Copyright (C) 2014 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
*/ |
#import "AAPLAppDelegate.h" |
#import "AAPLDataSource.h" |
#import "AAPLViewController.h" |
@interface AAPLAppDelegate () |
@property (nonatomic, readwrite) AAPLDataSource *dataSource; |
@end |
#pragma mark - |
@implementation AAPLAppDelegate |
// easy access to our primary collection view controller |
- (AAPLViewController *)primaryViewController |
{ |
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; |
return (navigationController.viewControllers)[0]; |
} |
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
// setup and restore our data source of images |
self.dataSource = [[AAPLDataSource alloc] init]; |
[UIApplication registerObjectForStateRestoration:self.dataSource restorationIdentifier:@"DataSource"]; |
// hand off the data source to our primary collection view controller |
AAPLViewController *primaryViewController = [self primaryViewController]; |
primaryViewController.dataSource = self.dataSource; |
[self.window makeKeyAndVisible]; |
return YES; |
} |
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
// any app setup done here after state restoration has occurred |
// |
return YES; |
} |
#pragma mark - NSUserActivity |
- (BOOL)application:(UIApplication *)application willContinueUserActivityWithType:(NSString *)userActivityType { |
AAPLViewController *primaryViewController = [self primaryViewController]; |
primaryViewController.dataSource = self.dataSource; |
//NSLog(@"%s: Preparing for activity with type %@, viewController is %@", __PRETTY_FUNCTION__, userActivityType, primaryViewController); |
[primaryViewController prepareForActivity]; |
return YES; |
} |
// Called on the main thread after the NSUserActivity object is available. |
// Use the data you stored in the NSUserActivity object to re-create what the user was doing. |
// You can create/fetch any restorable objects associated with the user activity, and pass them to the restorationHandler. |
// |
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler { |
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; |
AAPLViewController *viewController = (AAPLViewController *)(navigationController.viewControllers)[0]; |
//NSLog(@"%s: Handling activity %@, viewController is %@", __PRETTY_FUNCTION__, userActivity, viewController); |
[viewController handleUserActivity:userActivity]; |
restorationHandler(@[navigationController, viewController]); |
return YES; |
} |
// If the user activity cannot be fetched after willContinueUserActivityWithType is called, |
// this will be called on the main thread when implemented. |
// |
- (void)application:(UIApplication *)application didFailToContinueUserActivityWithType:(NSString *)userActivityType error:(NSError *)error { |
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; |
AAPLViewController *viewController = (AAPLViewController *)(navigationController.viewControllers)[0]; |
//NSLog(@"%s: Failed to continue activity type: %@", __PRETTY_FUNCTION__, userActivityType); |
// tell our view controller to handle failure to get activity |
[viewController handleActivityFailure]; |
} |
// This is called on the main thread when a user activity managed by UIKit has been updated. |
// You can use this as a last chance to add additional data to the userActivity. |
// |
- (void)application:(UIApplication *)application didUpdateUserActivity:(NSUserActivity *)userActivity { |
//NSLog(@"%s: Did update user activity: %@", __PRETTY_FUNCTION__, userActivity); |
} |
#pragma mark - UIStateRestoration |
- (BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder { |
return YES; |
} |
- (BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder { |
return YES; |
} |
@end |
Copyright © 2014 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2014-09-17