Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #29 from burtlo/storyboard-example

Add Storyboard example
  • Loading branch information...
commit 1cc8e240fd3131eb4379dd9dca3dba2cf3db6305 2 parents 1dcbed1 + 6eb0a21
Peter Steinberger authored
354 ExampleStoryboard/PSStackedStoryboardExample.xcodeproj/project.pbxproj
View
@@ -0,0 +1,354 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ E23C175115217912007A3611 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E23C175015217912007A3611 /* UIKit.framework */; };
+ E23C175315217912007A3611 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E23C175215217912007A3611 /* Foundation.framework */; };
+ E23C175515217912007A3611 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E23C175415217912007A3611 /* CoreGraphics.framework */; };
+ E23C175B15217912007A3611 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E23C175915217912007A3611 /* InfoPlist.strings */; };
+ E23C175D15217912007A3611 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C175C15217912007A3611 /* main.m */; };
+ E23C176115217912007A3611 /* PSAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C176015217912007A3611 /* PSAppDelegate.m */; };
+ E23C176415217912007A3611 /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E23C176215217912007A3611 /* MainStoryboard_iPhone.storyboard */; };
+ E23C176715217912007A3611 /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E23C176515217912007A3611 /* MainStoryboard_iPad.storyboard */; };
+ E23C176A15217912007A3611 /* PSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C176915217912007A3611 /* PSViewController.m */; };
+ E23C178515217A04007A3611 /* PSStackedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C177915217A04007A3611 /* PSStackedViewController.m */; };
+ E23C178615217A04007A3611 /* PSStackedViewGlobal.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C177C15217A04007A3611 /* PSStackedViewGlobal.m */; };
+ E23C178715217A04007A3611 /* PSStackedViewSegue.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C177E15217A04007A3611 /* PSStackedViewSegue.m */; };
+ E23C178815217A04007A3611 /* PSSVContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C178015217A04007A3611 /* PSSVContainerView.m */; };
+ E23C178915217A04007A3611 /* UIView+PSSizes.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C178215217A04007A3611 /* UIView+PSSizes.m */; };
+ E23C178A15217A04007A3611 /* UIViewController+PSStackedView.m in Sources */ = {isa = PBXBuildFile; fileRef = E23C178415217A04007A3611 /* UIViewController+PSStackedView.m */; };
+ E23C178C15217A1C007A3611 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E23C178B15217A1C007A3611 /* QuartzCore.framework */; };
+ E23C178E15217C34007A3611 /* PSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E23C178D15217C34007A3611 /* PSViewController.xib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ E23C174C15217912007A3611 /* PSStackedStoryboardExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PSStackedStoryboardExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ E23C175015217912007A3611 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ E23C175215217912007A3611 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ E23C175415217912007A3611 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ E23C175815217912007A3611 /* PSStackedStoryboardExample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PSStackedStoryboardExample-Info.plist"; sourceTree = "<group>"; };
+ E23C175A15217912007A3611 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ E23C175C15217912007A3611 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ E23C175E15217912007A3611 /* PSStackedStoryboardExample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PSStackedStoryboardExample-Prefix.pch"; sourceTree = "<group>"; };
+ E23C175F15217912007A3611 /* PSAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PSAppDelegate.h; sourceTree = "<group>"; };
+ E23C176015217912007A3611 /* PSAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PSAppDelegate.m; sourceTree = "<group>"; };
+ E23C176315217912007A3611 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = "<group>"; };
+ E23C176615217912007A3611 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = "<group>"; };
+ E23C176815217912007A3611 /* PSViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PSViewController.h; sourceTree = "<group>"; };
+ E23C176915217912007A3611 /* PSViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PSViewController.m; sourceTree = "<group>"; };
+ E23C177715217A04007A3611 /* PSStackedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSStackedView.h; path = ../PSStackedView/PSStackedView.h; sourceTree = "<group>"; };
+ E23C177815217A04007A3611 /* PSStackedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSStackedViewController.h; path = ../PSStackedView/PSStackedViewController.h; sourceTree = "<group>"; };
+ E23C177915217A04007A3611 /* PSStackedViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PSStackedViewController.m; path = ../PSStackedView/PSStackedViewController.m; sourceTree = "<group>"; };
+ E23C177A15217A04007A3611 /* PSStackedViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSStackedViewDelegate.h; path = ../PSStackedView/PSStackedViewDelegate.h; sourceTree = "<group>"; };
+ E23C177B15217A04007A3611 /* PSStackedViewGlobal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSStackedViewGlobal.h; path = ../PSStackedView/PSStackedViewGlobal.h; sourceTree = "<group>"; };
+ E23C177C15217A04007A3611 /* PSStackedViewGlobal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PSStackedViewGlobal.m; path = ../PSStackedView/PSStackedViewGlobal.m; sourceTree = "<group>"; };
+ E23C177D15217A04007A3611 /* PSStackedViewSegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSStackedViewSegue.h; path = ../PSStackedView/PSStackedViewSegue.h; sourceTree = "<group>"; };
+ E23C177E15217A04007A3611 /* PSStackedViewSegue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PSStackedViewSegue.m; path = ../PSStackedView/PSStackedViewSegue.m; sourceTree = "<group>"; };
+ E23C177F15217A04007A3611 /* PSSVContainerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSSVContainerView.h; path = ../PSStackedView/PSSVContainerView.h; sourceTree = "<group>"; };
+ E23C178015217A04007A3611 /* PSSVContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PSSVContainerView.m; path = ../PSStackedView/PSSVContainerView.m; sourceTree = "<group>"; };
+ E23C178115217A04007A3611 /* UIView+PSSizes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIView+PSSizes.h"; path = "../PSStackedView/UIView+PSSizes.h"; sourceTree = "<group>"; };
+ E23C178215217A04007A3611 /* UIView+PSSizes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIView+PSSizes.m"; path = "../PSStackedView/UIView+PSSizes.m"; sourceTree = "<group>"; };
+ E23C178315217A04007A3611 /* UIViewController+PSStackedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PSStackedView.h"; path = "../PSStackedView/UIViewController+PSStackedView.h"; sourceTree = "<group>"; };
+ E23C178415217A04007A3611 /* UIViewController+PSStackedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PSStackedView.m"; path = "../PSStackedView/UIViewController+PSStackedView.m"; sourceTree = "<group>"; };
+ E23C178B15217A1C007A3611 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ E23C178D15217C34007A3611 /* PSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PSViewController.xib; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ E23C174915217912007A3611 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E23C178C15217A1C007A3611 /* QuartzCore.framework in Frameworks */,
+ E23C175115217912007A3611 /* UIKit.framework in Frameworks */,
+ E23C175315217912007A3611 /* Foundation.framework in Frameworks */,
+ E23C175515217912007A3611 /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ E23C174115217912007A3611 = {
+ isa = PBXGroup;
+ children = (
+ E23C178B15217A1C007A3611 /* QuartzCore.framework */,
+ E23C1775152179F2007A3611 /* PSStackedView */,
+ E23C175615217912007A3611 /* PSStackedStoryboardExample */,
+ E23C174F15217912007A3611 /* Frameworks */,
+ E23C174D15217912007A3611 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ E23C174D15217912007A3611 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ E23C174C15217912007A3611 /* PSStackedStoryboardExample.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ E23C174F15217912007A3611 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E23C175015217912007A3611 /* UIKit.framework */,
+ E23C175215217912007A3611 /* Foundation.framework */,
+ E23C175415217912007A3611 /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ E23C175615217912007A3611 /* PSStackedStoryboardExample */ = {
+ isa = PBXGroup;
+ children = (
+ E23C175F15217912007A3611 /* PSAppDelegate.h */,
+ E23C176015217912007A3611 /* PSAppDelegate.m */,
+ E23C176215217912007A3611 /* MainStoryboard_iPhone.storyboard */,
+ E23C176515217912007A3611 /* MainStoryboard_iPad.storyboard */,
+ E23C176815217912007A3611 /* PSViewController.h */,
+ E23C176915217912007A3611 /* PSViewController.m */,
+ E23C178D15217C34007A3611 /* PSViewController.xib */,
+ E23C175715217912007A3611 /* Supporting Files */,
+ );
+ path = PSStackedStoryboardExample;
+ sourceTree = "<group>";
+ };
+ E23C175715217912007A3611 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ E23C175815217912007A3611 /* PSStackedStoryboardExample-Info.plist */,
+ E23C175915217912007A3611 /* InfoPlist.strings */,
+ E23C175C15217912007A3611 /* main.m */,
+ E23C175E15217912007A3611 /* PSStackedStoryboardExample-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ E23C1775152179F2007A3611 /* PSStackedView */ = {
+ isa = PBXGroup;
+ children = (
+ E23C177715217A04007A3611 /* PSStackedView.h */,
+ E23C177815217A04007A3611 /* PSStackedViewController.h */,
+ E23C177915217A04007A3611 /* PSStackedViewController.m */,
+ E23C177A15217A04007A3611 /* PSStackedViewDelegate.h */,
+ E23C177B15217A04007A3611 /* PSStackedViewGlobal.h */,
+ E23C177C15217A04007A3611 /* PSStackedViewGlobal.m */,
+ E23C177D15217A04007A3611 /* PSStackedViewSegue.h */,
+ E23C177E15217A04007A3611 /* PSStackedViewSegue.m */,
+ E23C177F15217A04007A3611 /* PSSVContainerView.h */,
+ E23C178015217A04007A3611 /* PSSVContainerView.m */,
+ E23C178115217A04007A3611 /* UIView+PSSizes.h */,
+ E23C178215217A04007A3611 /* UIView+PSSizes.m */,
+ E23C178315217A04007A3611 /* UIViewController+PSStackedView.h */,
+ E23C178415217A04007A3611 /* UIViewController+PSStackedView.m */,
+ );
+ name = PSStackedView;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ E23C174B15217912007A3611 /* PSStackedStoryboardExample */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = E23C176D15217912007A3611 /* Build configuration list for PBXNativeTarget "PSStackedStoryboardExample" */;
+ buildPhases = (
+ E23C174815217912007A3611 /* Sources */,
+ E23C174915217912007A3611 /* Frameworks */,
+ E23C174A15217912007A3611 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = PSStackedStoryboardExample;
+ productName = PSStackedStoryboardExample;
+ productReference = E23C174C15217912007A3611 /* PSStackedStoryboardExample.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ E23C174315217912007A3611 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ CLASSPREFIX = PS;
+ LastUpgradeCheck = 0430;
+ ORGANIZATIONNAME = "University of Washington";
+ };
+ buildConfigurationList = E23C174615217912007A3611 /* Build configuration list for PBXProject "PSStackedStoryboardExample" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = E23C174115217912007A3611;
+ productRefGroup = E23C174D15217912007A3611 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ E23C174B15217912007A3611 /* PSStackedStoryboardExample */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ E23C174A15217912007A3611 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E23C175B15217912007A3611 /* InfoPlist.strings in Resources */,
+ E23C176415217912007A3611 /* MainStoryboard_iPhone.storyboard in Resources */,
+ E23C176715217912007A3611 /* MainStoryboard_iPad.storyboard in Resources */,
+ E23C178E15217C34007A3611 /* PSViewController.xib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ E23C174815217912007A3611 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E23C175D15217912007A3611 /* main.m in Sources */,
+ E23C176115217912007A3611 /* PSAppDelegate.m in Sources */,
+ E23C176A15217912007A3611 /* PSViewController.m in Sources */,
+ E23C178515217A04007A3611 /* PSStackedViewController.m in Sources */,
+ E23C178615217A04007A3611 /* PSStackedViewGlobal.m in Sources */,
+ E23C178715217A04007A3611 /* PSStackedViewSegue.m in Sources */,
+ E23C178815217A04007A3611 /* PSSVContainerView.m in Sources */,
+ E23C178915217A04007A3611 /* UIView+PSSizes.m in Sources */,
+ E23C178A15217A04007A3611 /* UIViewController+PSStackedView.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ E23C175915217912007A3611 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ E23C175A15217912007A3611 /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ E23C176215217912007A3611 /* MainStoryboard_iPhone.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ E23C176315217912007A3611 /* en */,
+ );
+ name = MainStoryboard_iPhone.storyboard;
+ sourceTree = "<group>";
+ };
+ E23C176515217912007A3611 /* MainStoryboard_iPad.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ E23C176615217912007A3611 /* en */,
+ );
+ name = MainStoryboard_iPad.storyboard;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ E23C176B15217912007A3611 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ E23C176C15217912007A3611 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ E23C176E15217912007A3611 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "PSStackedStoryboardExample/PSStackedStoryboardExample-Prefix.pch";
+ INFOPLIST_FILE = "PSStackedStoryboardExample/PSStackedStoryboardExample-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ E23C176F15217912007A3611 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "PSStackedStoryboardExample/PSStackedStoryboardExample-Prefix.pch";
+ INFOPLIST_FILE = "PSStackedStoryboardExample/PSStackedStoryboardExample-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ E23C174615217912007A3611 /* Build configuration list for PBXProject "PSStackedStoryboardExample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E23C176B15217912007A3611 /* Debug */,
+ E23C176C15217912007A3611 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ E23C176D15217912007A3611 /* Build configuration list for PBXNativeTarget "PSStackedStoryboardExample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E23C176E15217912007A3611 /* Debug */,
+ E23C176F15217912007A3611 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = E23C174315217912007A3611 /* Project object */;
+}
15 ExampleStoryboard/PSStackedStoryboardExample/PSAppDelegate.h
View
@@ -0,0 +1,15 @@
+//
+// PSAppDelegate.h
+// PSStackedStoryboardExample
+//
+// Created by Franklin Webber on 3/26/12.
+// Copyright (c) 2012 University of Washington. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface PSAppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+@end
48 ExampleStoryboard/PSStackedStoryboardExample/PSAppDelegate.m
View
@@ -0,0 +1,48 @@
+//
+// PSAppDelegate.m
+// PSStackedStoryboardExample
+//
+// Created by Franklin Webber on 3/26/12.
+// Copyright (c) 2012 University of Washington. All rights reserved.
+//
+
+#import "PSAppDelegate.h"
+
+@implementation PSAppDelegate
+
+@synthesize window = _window;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ // Override point for customization after application launch.
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
49 ExampleStoryboard/PSStackedStoryboardExample/PSStackedStoryboardExample-Info.plist
View
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.psstackedview.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UIMainStoryboardFile</key>
+ <string>MainStoryboard_iPhone</string>
+ <key>UIMainStoryboardFile~ipad</key>
+ <string>MainStoryboard_iPad</string>
+ <key>UIRequiredDeviceCapabilities</key>
+ <array>
+ <string>armv7</string>
+ </array>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
14 ExampleStoryboard/PSStackedStoryboardExample/PSStackedStoryboardExample-Prefix.pch
View
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'PSStackedStoryboardExample' target in the 'PSStackedStoryboardExample' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import <UIKit/UIKit.h>
+ #import <Foundation/Foundation.h>
+#endif
21 ExampleStoryboard/PSStackedStoryboardExample/PSViewController.h
View
@@ -0,0 +1,21 @@
+//
+// PSViewController.h
+// PSStackedStoryboardExample
+//
+// Created by Franklin Webber on 3/26/12.
+// Copyright (c) 2012 University of Washington. All rights reserved.
+//
+
+#import "PSStackedViewController.h"
+
+@interface PSViewController : UIViewController
+
+@property (nonatomic,assign) BOOL showBackButton;
+@property (weak, nonatomic) IBOutlet UIButton *backButton;
+
+- (IBAction)addRedViewController:(id)sender;
+- (IBAction)addGreenViewController:(id)sender;
+- (IBAction)addBlueViewController:(id)sender;
+
+- (IBAction)goBack:(id)sender;
+@end
66 ExampleStoryboard/PSStackedStoryboardExample/PSViewController.m
View
@@ -0,0 +1,66 @@
+//
+// PSViewController.m
+// PSStackedStoryboardExample
+//
+// Created by Franklin Webber on 3/26/12.
+// Copyright (c) 2012 University of Washington. All rights reserved.
+//
+
+#import "PSViewController.h"
+#import "UIViewController+PSStackedView.h"
+
+@interface PSViewController ()
+
+@end
+
+@implementation PSViewController
+
+@synthesize showBackButton;
+@synthesize backButton;
+
+#pragma mark - View Lifecycle
+
+- (void)viewDidAppear:(BOOL)animated {
+ [super viewDidAppear:animated];
+ if (showBackButton) {
+ [[self backButton] setHidden:![self showBackButton]];
+ }
+
+}
+- (void)viewDidUnload {
+ [self setBackButton:nil];
+ [super viewDidUnload];
+}
+
+
+#pragma mark - Actions
+
+- (void)pushViewControllerWithColor:(UIColor *)color {
+
+ PSViewController *viewController = [[PSViewController alloc] init];
+
+ [[viewController view] setBackgroundColor:color];
+ [viewController setShowBackButton:YES];
+
+ [[self stackController] pushViewController:viewController fromViewController:self animated:YES];
+}
+
+
+- (IBAction)addRedViewController:(id)sender {
+ [self pushViewControllerWithColor:[UIColor redColor]];
+}
+
+- (IBAction)addGreenViewController:(id)sender {
+ [self pushViewControllerWithColor:[UIColor greenColor]];
+}
+
+- (IBAction)addBlueViewController:(id)sender {
+ [self pushViewControllerWithColor:[UIColor blueColor]];
+}
+
+- (IBAction)goBack:(id)sender {
+
+ [[self stackController] expandStack:1 animated:YES];
+}
+
+@end
379 ExampleStoryboard/PSStackedStoryboardExample/PSViewController.xib
View
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
+ <data>
+ <int key="IBDocument.SystemTarget">1296</int>
+ <string key="IBDocument.SystemVersion">11D50</string>
+ <string key="IBDocument.InterfaceBuilderVersion">2182</string>
+ <string key="IBDocument.AppKitVersion">1138.32</string>
+ <string key="IBDocument.HIToolboxVersion">568.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">1181</string>
+ </object>
+ <array key="IBDocument.IntegratedClassDependencies">
+ <string>IBUIButton</string>
+ <string>IBUIView</string>
+ <string>IBUILabel</string>
+ <string>IBProxyObject</string>
+ </array>
+ <array key="IBDocument.PluginDependencies">
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </array>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+ <integer value="1" key="NS.object.0"/>
+ </object>
+ <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUILabel" id="634465904">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{129, 219}, {62, 21}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Stack it!</string>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">0</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <object class="IBUIFontDescription" key="IBUIFontDescription">
+ <int key="type">1</int>
+ <double key="pointSize">17</double>
+ </object>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">17</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ </object>
+ <object class="IBUIButton" id="24596954">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{14, 144}, {52, 52}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="736917191"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">R</string>
+ <object class="NSColor" key="IBUIHighlightedTitleColor" id="275580993">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor" id="993176512">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="291747633">
+ <int key="type">2</int>
+ <double key="pointSize">15</double>
+ </object>
+ <object class="NSFont" key="IBUIFont" id="423807281">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ </object>
+ <object class="IBUIButton" id="736917191">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{14, 204}, {52, 52}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="1022037234"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">G</string>
+ <reference key="IBUIHighlightedTitleColor" ref="275580993"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="993176512"/>
+ <reference key="IBUIFontDescription" ref="291747633"/>
+ <reference key="IBUIFont" ref="423807281"/>
+ </object>
+ <object class="IBUIButton" id="1022037234">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{14, 264}, {52, 52}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="839202823"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">B</string>
+ <reference key="IBUIHighlightedTitleColor" ref="275580993"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="993176512"/>
+ <reference key="IBUIFontDescription" ref="291747633"/>
+ <reference key="IBUIFont" ref="423807281"/>
+ </object>
+ <object class="IBUIButton" id="839202823">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">-2147483356</int>
+ <string key="NSFrame">{{14, 18}, {71, 52}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="634465904"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Back</string>
+ <reference key="IBUIHighlightedTitleColor" ref="275580993"/>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <reference key="IBUINormalTitleShadowColor" ref="993176512"/>
+ <reference key="IBUIFontDescription" ref="291747633"/>
+ <reference key="IBUIFont" ref="423807281"/>
+ </object>
+ </array>
+ <string key="NSFrame">{{0, 20}, {320, 460}}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="24596954"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <array class="NSMutableArray" key="connectionRecords">
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">4</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">backButton</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="839202823"/>
+ </object>
+ <int key="connectionID">15</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">addRedViewController:</string>
+ <reference key="source" ref="24596954"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">addGreenViewController:</string>
+ <reference key="source" ref="736917191"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">9</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">addBlueViewController:</string>
+ <reference key="source" ref="1022037234"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">10</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">goBack:</string>
+ <reference key="source" ref="839202823"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">7</int>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ </array>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <array key="orderedObjects">
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <array key="object" id="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="634465904"/>
+ <reference ref="24596954"/>
+ <reference ref="736917191"/>
+ <reference ref="1022037234"/>
+ <reference ref="839202823"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">3</int>
+ <reference key="object" ref="634465904"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="24596954"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="736917191"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="1022037234"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="839202823"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </array>
+ </object>
+ <dictionary class="NSMutableDictionary" key="flattenedProperties">
+ <string key="-1.CustomClassName">PSViewController</string>
+ <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="-2.CustomClassName">UIResponder</string>
+ <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="11.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="3.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
+ <nil key="activeLocalization"/>
+ <dictionary class="NSMutableDictionary" key="localizations"/>
+ <nil key="sourceID"/>
+ <int key="maxID">15</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <array class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <object class="IBPartialClassDescription">
+ <string key="className">PSViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <dictionary class="NSMutableDictionary" key="actions">
+ <string key="addBlueViewController:">id</string>
+ <string key="addGreenViewController:">id</string>
+ <string key="addRedViewController:">id</string>
+ <string key="goBack:">id</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="actionInfosByName">
+ <object class="IBActionInfo" key="addBlueViewController:">
+ <string key="name">addBlueViewController:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo" key="addGreenViewController:">
+ <string key="name">addGreenViewController:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo" key="addRedViewController:">
+ <string key="name">addRedViewController:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo" key="goBack:">
+ <string key="name">goBack:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </dictionary>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">backButton</string>
+ <string key="NS.object.0">UIButton</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">backButton</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">backButton</string>
+ <string key="candidateClassName">UIButton</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/PSViewController.h</string>
+ </object>
+ </object>
+ </array>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <real value="1296" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">1181</string>
+ </data>
+</archive>
2  ExampleStoryboard/PSStackedStoryboardExample/en.lproj/InfoPlist.strings
View
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
27 ExampleStoryboard/PSStackedStoryboardExample/en.lproj/MainStoryboard_iPad.storyboard
View
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="1.0" toolsVersion="1906" systemVersion="11A511" targetRuntime="iOS.CocoaTouch.iPad" nextObjectID="6" propertyAccessControl="none" initialViewController="2">
+ <dependencies>
+ <development defaultVersion="4200" identifier="xcode"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="902"/>
+ </dependencies>
+ <scenes>
+ <scene sceneID="4">
+ <objects>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="3" sceneMemberID="firstResponder"/>
+ <viewController id="2" customClass="PSViewController" sceneMemberID="viewController">
+ <view key="view" contentMode="scaleToFill" id="5">
+ <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+ <subviews/>
+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+ </view>
+ </viewController>
+ </objects>
+ </scene>
+ </scenes>
+ <simulatedMetricsContainer key="defaultSimulatedMetrics">
+ <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
+ <simulatedOrientationMetrics key="orientation"/>
+ <simulatedScreenMetrics key="destination"/>
+ </simulatedMetricsContainer>
+</document>
51 ExampleStoryboard/PSStackedStoryboardExample/en.lproj/MainStoryboard_iPhone.storyboard
View
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="1.1" toolsVersion="2182" systemVersion="11D50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="2">
+ <dependencies>
+ <deployment defaultVersion="1296" identifier="iOS"/>
+ <development defaultVersion="4200" identifier="xcode"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1181"/>
+ </dependencies>
+ <scenes>
+ <!--Stacked View Controller-->
+ <scene sceneID="5">
+ <objects>
+ <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
+ <viewController id="2" customClass="PSStackedViewController" sceneMemberID="viewController">
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="number" keyPath="leftInset">
+ <real key="value" value="0.0"/>
+ </userDefinedRuntimeAttribute>
+ <userDefinedRuntimeAttribute type="number" keyPath="largeLeftInset">
+ <real key="value" value="320"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <outlet property="rootViewController" destination="hla-rk-vUF" id="UIv-3W-oQV"/>
+ </connections>
+ </viewController>
+ <customObject id="hla-rk-vUF" customClass="PSViewController"/>
+ </objects>
+ </scene>
+ </scenes>
+ <classes>
+ <class className="PSStackedViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/PSStackedViewController.h"/>
+ <relationships>
+ <relationship kind="outlet" name="rootViewController" candidateClass="UIViewController"/>
+ </relationships>
+ </class>
+ <class className="PSViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/PSViewController.h"/>
+ <relationships>
+ <relationship kind="action" name="addBlueViewController:"/>
+ <relationship kind="action" name="addGreenViewController:"/>
+ <relationship kind="action" name="addRedViewController:"/>
+ </relationships>
+ </class>
+ </classes>
+ <simulatedMetricsContainer key="defaultSimulatedMetrics">
+ <simulatedStatusBarMetrics key="statusBar"/>
+ <simulatedOrientationMetrics key="orientation"/>
+ <simulatedScreenMetrics key="destination"/>
+ </simulatedMetricsContainer>
+</document>
18 ExampleStoryboard/PSStackedStoryboardExample/main.m
View
@@ -0,0 +1,18 @@
+//
+// main.m
+// PSStackedStoryboardExample
+//
+// Created by Franklin Webber on 3/26/12.
+// Copyright (c) 2012 University of Washington. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "PSAppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([PSAppDelegate class]));
+ }
+}
2  PSStackedView/PSStackedViewController.h
View
@@ -80,7 +80,7 @@ enum {
@property(nonatomic, unsafe_unretained) id<PSStackedViewDelegate> delegate;
/// root view controller, always displayed behind stack
-@property(nonatomic, strong, readonly) UIViewController *rootViewController;
+@property(nonatomic, strong) IBOutlet UIViewController *rootViewController;
/// The top(last) view controller on the stack.
@property(nonatomic, readonly, strong) UIViewController *topViewController;
91 PSStackedView/PSStackedViewController.m
View
@@ -44,7 +44,7 @@ @interface PSStackedViewController() <UIGestureRecognizerDelegate> {
unsigned int delegateDidAlign:1;
}delegateFlags_;
}
-@property(nonatomic, strong) UIViewController *rootViewController;
+
@property(nonatomic, strong) NSArray *viewControllers;
@property(nonatomic, assign) NSInteger firstVisibleIndex;
@property(nonatomic, assign) CGFloat floatIndex;
@@ -98,33 +98,61 @@ - (void)configureGestureRecognizer
self.panRecognizer = panRecognizer;
}
-- (id)initWithRootViewController:(UIViewController *)rootViewController; {
+#pragma mark - Initialization
+
+- (void)sharedInitialization {
+ viewControllers_ = [[NSMutableArray alloc] init];
+
+ // set some reasonble defaults
+ leftInset_ = 60;
+ largeLeftInset_ = 200;
+
+ [self configureGestureRecognizer];
+
+ enableBounces_ = YES;
+ enableShadows_ = YES;
+ enableDraggingPastInsets_ = YES;
+ enableScalingFadeInOut_ = YES;
+ defaultShadowWidth_ = 60.0f;
+ defaultShadowAlpha_ = 0.2f;
+ cornerRadius_ = 6.0f;
+
+#ifdef ALLOW_SWIZZLING_NAVIGATIONCONTROLLER
+ PSSVLog("Swizzling UIViewController.navigationController");
+ Method origMethod = class_getInstanceMethod([UIViewController class], @selector(navigationController));
+ Method overrideMethod = class_getInstanceMethod([UIViewController class], @selector(navigationControllerSwizzled));
+ method_exchangeImplementations(origMethod, overrideMethod);
+#endif
+
+}
+
+- (id)init {
+
if ((self = [super init])) {
- rootViewController_ = rootViewController;
- objc_setAssociatedObject(rootViewController, kPSSVAssociatedStackViewControllerKey, self, OBJC_ASSOCIATION_ASSIGN); // associate weak
+
+ [self sharedInitialization];
- viewControllers_ = [[NSMutableArray alloc] init];
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder *)coder {
+ self = [super initWithCoder:coder];
+ if (self) {
- // set some reasonble defaults
- leftInset_ = 60;
- largeLeftInset_ = 200;
+ [self sharedInitialization];
- [self configureGestureRecognizer];
+ }
+ return self;
+}
- enableBounces_ = YES;
- enableShadows_ = YES;
- enableDraggingPastInsets_ = YES;
- enableScalingFadeInOut_ = YES;
- defaultShadowWidth_ = 60.0f;
- defaultShadowAlpha_ = 0.2f;
- cornerRadius_ = 6.0f;
+- (id)initWithRootViewController:(UIViewController *)rootViewController; {
+
+ if ((self = [super init])) {
+
+ [self setRootViewController:rootViewController];
+ [self sharedInitialization];
-#ifdef ALLOW_SWIZZLING_NAVIGATIONCONTROLLER
- PSSVLog("Swizzling UIViewController.navigationController");
- Method origMethod = class_getInstanceMethod([UIViewController class], @selector(navigationController));
- Method overrideMethod = class_getInstanceMethod([UIViewController class], @selector(navigationControllerSwizzled));
- method_exchangeImplementations(origMethod, overrideMethod);
-#endif
}
return self;
}
@@ -140,6 +168,20 @@ - (void)dealloc {
}
///////////////////////////////////////////////////////////////////////////////////////////////////
+
+#pragma mark - Root View Controller
+
+- (void)setRootViewController:(UIViewController *)rootViewController {
+
+ if (rootViewController_ != rootViewController) {
+ rootViewController_ = nil;
+
+ rootViewController_ = rootViewController;
+ objc_setAssociatedObject(rootViewController, kPSSVAssociatedStackViewControllerKey, self, OBJC_ASSOCIATION_ASSIGN); // associate weak
+
+ }
+}
+
#pragma mark - Delegate
- (void)setDelegate:(id<PSStackedViewDelegate>)delegate {
@@ -1168,7 +1210,8 @@ - (BOOL)shouldSnapAnimate {
PSSVBounceBack,
}typedef PSSVBounceOption;
-- (void)alignStackAnimated:(BOOL)animated duration:(CGFloat)duration bounceType:(PSSVBounceOption)bounce; {
+- (void)alignStackAnimated:(BOOL)animated duration:(CGFloat)duration bounceType:(PSSVBounceOption)bounce {
+
animated = animated && !self.isReducingAnimations; // don't animate if set
self.floatIndex = [self nearestValidFloatIndex:self.floatIndex]; // round to nearest correct index
UIViewAnimationCurve animationCurve = UIViewAnimationCurveEaseInOut;
@@ -1189,7 +1232,7 @@ - (void)alignStackAnimated:(BOOL)animated duration:(CGFloat)duration bounceType:
PSSVSimpleBlock alignmentBlock = ^{
- PSSVLog(@"Begin aliging VCs. Last drag offset:%d direction:%d bounce:%d.", lastDragOffset_, lastDragOption_, bounce);
+ PSSVLog(@"Begin aligning VCs. Last drag offset:%d direction:%d bounce:%d.", lastDragOffset_, lastDragOption_, bounce);
// calculate offset used only when we're bleeding over
NSInteger snapOverOffset = 0; // > 0 = <--- ; we scrolled from right to left.
Please sign in to comment.
Something went wrong with that request. Please try again.