From 3c93c1f3499861907a4a7b1028bc9f34bdf08cc4 Mon Sep 17 00:00:00 2001 From: deebost Date: Mon, 11 Nov 2013 23:07:20 -0600 Subject: [PATCH 1/2] done finally made a custom uinavigationcontroller transition to look pretty! like example! --- ChangingBackground.xcodeproj/project.pbxproj | 7 + ChangingBackground/AppDelegate.h | 1 + ChangingBackground/AppDelegate.m | 10 +- ChangingBackground/FirstViewController.h | 2 + ChangingBackground/FirstViewController.m | 33 ++- ChangingBackground/FirstViewController.xib | 261 +++-------------- ChangingBackground/SecondViewController.h | 3 + ChangingBackground/SecondViewController.m | 30 +- ChangingBackground/SecondViewController.xib | 286 +++---------------- 9 files changed, 168 insertions(+), 465 deletions(-) diff --git a/ChangingBackground.xcodeproj/project.pbxproj b/ChangingBackground.xcodeproj/project.pbxproj index 2e16be1..cfd91ac 100644 --- a/ChangingBackground.xcodeproj/project.pbxproj +++ b/ChangingBackground.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 001809EC171C6764002D3E93 /* blue@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 001809E8171C6764002D3E93 /* blue@2x.png */; }; 001809ED171C6764002D3E93 /* green.png in Resources */ = {isa = PBXBuildFile; fileRef = 001809E9171C6764002D3E93 /* green.png */; }; 001809EE171C6764002D3E93 /* green@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 001809EA171C6764002D3E93 /* green@2x.png */; }; + 915CD0471830BA5D00342C1A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 915CD0461830BA5D00342C1A /* QuartzCore.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -50,6 +51,7 @@ 001809E8171C6764002D3E93 /* blue@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "blue@2x.png"; sourceTree = ""; }; 001809E9171C6764002D3E93 /* green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = green.png; sourceTree = ""; }; 001809EA171C6764002D3E93 /* green@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "green@2x.png"; sourceTree = ""; }; + 915CD0461830BA5D00342C1A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -57,6 +59,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 915CD0471830BA5D00342C1A /* QuartzCore.framework in Frameworks */, 001809B9171C637E002D3E93 /* UIKit.framework in Frameworks */, 001809BB171C637E002D3E93 /* Foundation.framework in Frameworks */, 001809BD171C637E002D3E93 /* CoreGraphics.framework in Frameworks */, @@ -86,6 +89,7 @@ 001809B7171C637E002D3E93 /* Frameworks */ = { isa = PBXGroup; children = ( + 915CD0461830BA5D00342C1A /* QuartzCore.framework */, 001809B8171C637E002D3E93 /* UIKit.framework */, 001809BA171C637E002D3E93 /* Foundation.framework */, 001809BC171C637E002D3E93 /* CoreGraphics.framework */, @@ -321,6 +325,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "ChangingBackground/ChangingBackground-Prefix.pch"; INFOPLIST_FILE = "ChangingBackground/ChangingBackground-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -332,6 +337,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "ChangingBackground/ChangingBackground-Prefix.pch"; INFOPLIST_FILE = "ChangingBackground/ChangingBackground-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -356,6 +362,7 @@ 001809D4171C637E002D3E93 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/ChangingBackground/AppDelegate.h b/ChangingBackground/AppDelegate.h index f96be1d..2380428 100644 --- a/ChangingBackground/AppDelegate.h +++ b/ChangingBackground/AppDelegate.h @@ -9,5 +9,6 @@ #import @interface AppDelegate : UIResponder +@property (nonatomic, strong) UIImageView *background; @end diff --git a/ChangingBackground/AppDelegate.m b/ChangingBackground/AppDelegate.m index 9538cc1..ff09713 100644 --- a/ChangingBackground/AppDelegate.m +++ b/ChangingBackground/AppDelegate.m @@ -9,6 +9,7 @@ #import "AppDelegate.h" #import "FirstViewController.h" + @interface AppDelegate () { UIWindow *window; } @@ -18,13 +19,20 @@ @interface AppDelegate () { @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + window = [UIWindow.alloc initWithFrame:UIScreen.mainScreen.bounds]; + [window makeKeyAndVisible]; - + + _background = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blue"]]; + + [window addSubview:_background]; FirstViewController *firstViewController = FirstViewController.new; UINavigationController *navigationController = [UINavigationController.alloc initWithRootViewController:firstViewController]; [navigationController setNavigationBarHidden:YES]; + window.rootViewController = navigationController; return YES; diff --git a/ChangingBackground/FirstViewController.h b/ChangingBackground/FirstViewController.h index a2fae46..52106c6 100644 --- a/ChangingBackground/FirstViewController.h +++ b/ChangingBackground/FirstViewController.h @@ -11,5 +11,7 @@ @interface FirstViewController : UIViewController - (IBAction)goForwardButtonPressed; +@property (weak, nonatomic) IBOutlet UIButton *goForwardButton; +@property (weak, nonatomic) IBOutlet UILabel *homeViewControllerLabel; @end diff --git a/ChangingBackground/FirstViewController.m b/ChangingBackground/FirstViewController.m index 8aedb68..08193e1 100644 --- a/ChangingBackground/FirstViewController.m +++ b/ChangingBackground/FirstViewController.m @@ -8,16 +8,43 @@ #import "FirstViewController.h" #import "SecondViewController.h" +#import "AppDelegate.h" -@interface FirstViewController () -@end @implementation FirstViewController +- (void)viewDidLoad { + [super viewDidLoad]; + [self setUp1stViewControllerElements]; + +} + - (IBAction)goForwardButtonPressed { + SecondViewController *secondViewController = SecondViewController.new; - [self.navigationController pushViewController:secondViewController animated:YES]; + CATransition* transition = [CATransition animation]; + transition.duration = 0.5; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.navigationController.view.layer addAnimation:transition forKey:nil]; + [self.navigationController pushViewController:secondViewController animated:NO]; } +- (void)setUp1stViewControllerElements { + _goForwardButton.layer.cornerRadius = 10.0f; + _goForwardButton.backgroundColor = [UIColor whiteColor]; + self.view.backgroundColor = [UIColor clearColor]; +} + +- (void)viewDidAppear:(BOOL)animated { + AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + + [UIView transitionWithView:delegate.background duration:2.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ + + delegate.background.image = [UIImage imageNamed:@"blue"]; + } completion:^(BOOL finished) { + }]; +} @end diff --git a/ChangingBackground/FirstViewController.xib b/ChangingBackground/FirstViewController.xib index 0dd58c2..1f9c49e 100644 --- a/ChangingBackground/FirstViewController.xib +++ b/ChangingBackground/FirstViewController.xib @@ -1,217 +1,44 @@ - - - - 1552 - 12C3006 - 3084 - 1187.34 - 625.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 2083 - - - IBProxyObject - IBUIButton - IBUILabel - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 292 - {{77, 115}, {166, 21}} - - - _NS:9 - NO - YES - 7 - NO - IBCocoaTouchFramework - Home View Controller - - 1 - MCAwIDAAA - darkTextColor - - - 0 - - 1 - 17 - - - Helvetica - 17 - 16 - - NO - - - - 292 - {{102, 180}, {109, 44}} - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Go Forward - - 3 - MQA - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - 3 - MC41AA - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - - - - {{0, 20}, {320, 548}} - - - 3 - MQA - - 2 - - - - - IBUIScreenMetrics - - YES - - - - - - {320, 568} - {568, 320} - - - IBCocoaTouchFramework - Retina 4 Full Screen - 2 - - IBCocoaTouchFramework - - - - - - - view - - - - 3 - - - - goForwardButtonPressed - - - 7 - - 8 - - - - - - 0 - - - - - - 1 - - - - - - - - - -1 - - - File's Owner - - - -2 - - - - - 4 - - - - - 7 - - - - - - - FirstViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 8 - - - 0 - IBCocoaTouchFramework - YES - 3 - 2083 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ChangingBackground/SecondViewController.h b/ChangingBackground/SecondViewController.h index 9ded32e..e8206c2 100644 --- a/ChangingBackground/SecondViewController.h +++ b/ChangingBackground/SecondViewController.h @@ -12,4 +12,7 @@ - (IBAction)goBackButtonPressed; +@property (weak, nonatomic) IBOutlet UIButton *goBackButton; +@property (weak, nonatomic) IBOutlet UILabel *secondViewControllerLabel; + @end diff --git a/ChangingBackground/SecondViewController.m b/ChangingBackground/SecondViewController.m index 028f811..9b92ff9 100644 --- a/ChangingBackground/SecondViewController.m +++ b/ChangingBackground/SecondViewController.m @@ -7,12 +7,40 @@ // #import "SecondViewController.h" +#import "AppDelegate.h" + + @implementation SecondViewController +- (void)viewDidLoad { + [super viewDidLoad]; + [self setUp2ndViewControllerElements]; +} + - (IBAction)goBackButtonPressed { - [self.navigationController popViewControllerAnimated:YES]; + CATransition* transition = [CATransition animation]; + transition.duration = 0.5; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.navigationController.view.layer addAnimation:transition forKey:nil]; + [self.navigationController popToRootViewControllerAnimated:NO]; + +} + +- (void)setUp2ndViewControllerElements { + _goBackButton.layer.cornerRadius = 5.0f; + _goBackButton.backgroundColor = [UIColor whiteColor]; + self.view.backgroundColor = [UIColor clearColor]; } +- (void)viewDidAppear:(BOOL)animated { + AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + [UIView transitionWithView:delegate.background duration:2.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ + delegate.background.image = [UIImage imageNamed:@"green"]; + } completion:^(BOOL finished) { + }]; +} @end diff --git a/ChangingBackground/SecondViewController.xib b/ChangingBackground/SecondViewController.xib index d603949..94b634d 100644 --- a/ChangingBackground/SecondViewController.xib +++ b/ChangingBackground/SecondViewController.xib @@ -1,243 +1,43 @@ - - - - 1552 - 12C3006 - 3084 - 1187.34 - 625.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 2083 - - - IBProxyObject - IBUIButton - IBUILabel - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 292 - {{71, 118}, {209, 21}} - - - - _NS:9 - NO - YES - 7 - NO - IBCocoaTouchFramework - Second View Controller - - 1 - MCAwIDAAA - darkTextColor - - - 0 - - 1 - 17 - - - Helvetica - 17 - 16 - - NO - - - - 292 - {{118, 178}, {85, 44}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Go Back - - 3 - MQA - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - 3 - MC41AA - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - - - - {{0, 20}, {320, 548}} - - - - - 3 - MQA - - 2 - - - - - IBUIScreenMetrics - - YES - - - - - - {320, 568} - {568, 320} - - - IBCocoaTouchFramework - Retina 4 Full Screen - 2 - - IBCocoaTouchFramework - - - - - - - view - - - - 3 - - - - goBackButtonPressed - - - 7 - - 10 - - - - - - 0 - - - - - - 1 - - - - - - - - - -1 - - - File's Owner - - - -2 - - - - - 4 - - - - - 7 - - - - - - - SecondViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 10 - - - - - SecondViewController - UIViewController - - goBackButtonPressed - id - - - goBackButtonPressed - - goBackButtonPressed - id - - - - IBProjectSource - ./Classes/SecondViewController.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - 2083 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 2236fb269bf6ba91b47bbdae25bf86a569c7aeb1 Mon Sep 17 00:00:00 2001 From: deebost Date: Tue, 12 Nov 2013 00:06:02 -0600 Subject: [PATCH 2/2] i think this works so the firstviewcontroller passes on the data instead of the app delegate --- ChangingBackground/FirstViewController.h | 2 ++ ChangingBackground/FirstViewController.m | 3 ++- ChangingBackground/SecondViewController.m | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangingBackground/FirstViewController.h b/ChangingBackground/FirstViewController.h index 52106c6..fc85f07 100644 --- a/ChangingBackground/FirstViewController.h +++ b/ChangingBackground/FirstViewController.h @@ -7,10 +7,12 @@ // #import +#import "AppDelegate.h" @interface FirstViewController : UIViewController - (IBAction)goForwardButtonPressed; +@property(strong, nonatomic) AppDelegate *delegate; @property (weak, nonatomic) IBOutlet UIButton *goForwardButton; @property (weak, nonatomic) IBOutlet UILabel *homeViewControllerLabel; diff --git a/ChangingBackground/FirstViewController.m b/ChangingBackground/FirstViewController.m index 08193e1..7369f24 100644 --- a/ChangingBackground/FirstViewController.m +++ b/ChangingBackground/FirstViewController.m @@ -13,6 +13,7 @@ @implementation FirstViewController +AppDelegate *delegate; - (void)viewDidLoad { [super viewDidLoad]; @@ -39,7 +40,7 @@ - (void)setUp1stViewControllerElements { } - (void)viewDidAppear:(BOOL)animated { - AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [UIView transitionWithView:delegate.background duration:2.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ diff --git a/ChangingBackground/SecondViewController.m b/ChangingBackground/SecondViewController.m index 9b92ff9..e91bf4c 100644 --- a/ChangingBackground/SecondViewController.m +++ b/ChangingBackground/SecondViewController.m @@ -7,7 +7,8 @@ // #import "SecondViewController.h" -#import "AppDelegate.h" +#import "FirstViewController.h" +