diff --git a/ManualStoryboard/README.md b/ManualStoryboard/README.md index 0b01a6d5..632b829e 100644 --- a/ManualStoryboard/README.md +++ b/ManualStoryboard/README.md @@ -3,4 +3,6 @@ Manual Storyboard How to instantiate Storyboards programatically. This is the finished application from the [Instantiate Storyboards Manually](http://docs.xamarin.com/guides/ios/user_interface/introduction_to_storyboards/#Instantiate_Storyboards_Manually) section of the Introduction to Storyboards document. +It also includes a sample detailing how to create conditional segues. + diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional.sln b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional.sln new file mode 100644 index 00000000..373bde44 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Storyboard.Conditional", "Storyboard.Conditional\Storyboard.Conditional.csproj", "{33D65BEB-5290-4835-B17F-D093F598170B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|iPhoneSimulator = Release|iPhoneSimulator + Debug|iPhone = Debug|iPhone + Release|iPhone = Release|iPhone + Ad-Hoc|iPhone = Ad-Hoc|iPhone + AppStore|iPhone = AppStore|iPhone + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {33D65BEB-5290-4835-B17F-D093F598170B}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.AppStore|iPhone.ActiveCfg = AppStore|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.AppStore|iPhone.Build.0 = AppStore|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.Debug|iPhone.ActiveCfg = Debug|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.Debug|iPhone.Build.0 = Debug|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {33D65BEB-5290-4835-B17F-D093F598170B}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {33D65BEB-5290-4835-B17F-D093F598170B}.Release|iPhone.ActiveCfg = Release|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.Release|iPhone.Build.0 = Release|iPhone + {33D65BEB-5290-4835-B17F-D093F598170B}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {33D65BEB-5290-4835-B17F-D093F598170B}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + EndGlobalSection +EndGlobal diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/AppDelegate.cs b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/AppDelegate.cs new file mode 100644 index 00000000..313e24fa --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/AppDelegate.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace Storyboard.Conditional +{ + + [Register ("AppDelegate")] + public partial class AppDelegate : UIApplicationDelegate + { + UIWindow window; + public static UIStoryboard Storyboard = UIStoryboard.FromName ("MainStoryboard", null); + public static UIViewController initialViewController; + + public override bool FinishedLaunching (UIApplication app, NSDictionary options) + { + window = new UIWindow (UIScreen.MainScreen.Bounds); + + initialViewController = Storyboard.InstantiateInitialViewController () as UIViewController; + + window.RootViewController = initialViewController; + window.MakeKeyAndVisible (); + return true; + } + + } +} + diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Entitlements.plist b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Entitlements.plist new file mode 100644 index 00000000..9ae59937 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Entitlements.plist @@ -0,0 +1,6 @@ + + + + + + diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Info.plist b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Info.plist new file mode 100644 index 00000000..53851c5d --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDisplayName + Storyboard.Conditional + CFBundleIdentifier + com.your-company.Storyboard.Conditional + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + MinimumOSVersion + 8.0 + UIDeviceFamily + + 1 + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Resources/Images.xcassets/AppIcons.appiconset + + diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Main.cs b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Main.cs new file mode 100644 index 00000000..6eff0388 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Main.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace Storyboard.Conditional +{ + public class Application + { + // This is the main entry point of the application. + static void Main (string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main (args, null, "AppDelegate"); + } + } +} diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainStoryboard.storyboard b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainStoryboard.storyboard new file mode 100644 index 00000000..2a5277c1 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainStoryboard.storyboard @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainViewController.cs b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainViewController.cs new file mode 100644 index 00000000..45c1621b --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainViewController.cs @@ -0,0 +1,33 @@ +using Foundation; +using System; +using System.CodeDom.Compiler; +using UIKit; + +namespace Storyboard.Conditional +{ + partial class MainViewController : UIViewController + { + + + public MainViewController (IntPtr handle) : base (handle) + { + } + + public override bool ShouldPerformSegue (string segueIdentifier, NSObject sender) + { + + if(segueIdentifier == "SegueToPink"){ + if (PasswordTextField.Text == "password") { + PasswordTextField.ResignFirstResponder (); + return true; + } + else{ + ErrorLabel.Hidden = false; + return false; + } + } + return base.ShouldPerformSegue (segueIdentifier, sender); + } + + } +} diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainViewController.designer.cs b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainViewController.designer.cs new file mode 100644 index 00000000..9ab5f538 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/MainViewController.designer.cs @@ -0,0 +1,45 @@ +// WARNING +// +// This file has been generated automatically by Xamarin Studio from the outlets and +// actions declared in your storyboard file. +// Manual changes to this file will not be maintained. +// +using Foundation; +using System; +using System.CodeDom.Compiler; +using UIKit; + +namespace Storyboard.Conditional +{ + [Register ("MainViewController")] + partial class MainViewController + { + [Outlet] + [GeneratedCode ("iOS Designer", "1.0")] + UILabel ErrorLabel { get; set; } + + [Outlet] + [GeneratedCode ("iOS Designer", "1.0")] + UITextField PasswordTextField { get; set; } + + [Outlet] + [GeneratedCode ("iOS Designer", "1.0")] + UIButton PinkButton { get; set; } + + void ReleaseDesignerOutlets () + { + if (ErrorLabel != null) { + ErrorLabel.Dispose (); + ErrorLabel = null; + } + if (PasswordTextField != null) { + PasswordTextField.Dispose (); + PasswordTextField = null; + } + if (PinkButton != null) { + PinkButton.Dispose (); + PinkButton = null; + } + } + } +} diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/PinkViewController.cs b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/PinkViewController.cs new file mode 100644 index 00000000..12c9c7b5 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/PinkViewController.cs @@ -0,0 +1,14 @@ +using Foundation; +using System; +using System.CodeDom.Compiler; +using UIKit; + +namespace Storyboard.Conditional +{ + partial class PinkViewController : UIViewController + { + public PinkViewController (IntPtr handle) : base (handle) + { + } + } +} diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/PinkViewController.designer.cs b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/PinkViewController.designer.cs new file mode 100644 index 00000000..1c73059e --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/PinkViewController.designer.cs @@ -0,0 +1,21 @@ +// WARNING +// +// This file has been generated automatically by Xamarin Studio from the outlets and +// actions declared in your storyboard file. +// Manual changes to this file will not be maintained. +// +using Foundation; +using System; +using System.CodeDom.Compiler; +using UIKit; + +namespace Storyboard.Conditional +{ + [Register ("PinkViewController")] + partial class PinkViewController + { + void ReleaseDesignerOutlets () + { + } + } +} diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Resources/Images.xcassets/AppIcons.appiconset/Contents.json b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Resources/Images.xcassets/AppIcons.appiconset/Contents.json new file mode 100644 index 00000000..24f99745 --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Resources/Images.xcassets/AppIcons.appiconset/Contents.json @@ -0,0 +1,108 @@ +{ + "images": [ + { + "size": "29x29", + "scale": "1x", + "idiom": "iphone" + }, + { + "size": "29x29", + "scale": "2x", + "idiom": "iphone" + }, + { + "size": "29x29", + "scale": "3x", + "idiom": "iphone" + }, + { + "size": "40x40", + "scale": "2x", + "idiom": "iphone" + }, + { + "size": "40x40", + "scale": "3x", + "idiom": "iphone" + }, + { + "size": "57x57", + "scale": "1x", + "idiom": "iphone" + }, + { + "size": "57x57", + "scale": "2x", + "idiom": "iphone" + }, + { + "size": "60x60", + "scale": "2x", + "idiom": "iphone" + }, + { + "size": "60x60", + "scale": "3x", + "idiom": "iphone" + }, + { + "size": "29x29", + "scale": "1x", + "idiom": "ipad" + }, + { + "size": "29x29", + "scale": "2x", + "idiom": "ipad" + }, + { + "size": "40x40", + "scale": "1x", + "idiom": "ipad" + }, + { + "size": "40x40", + "scale": "2x", + "idiom": "ipad" + }, + { + "size": "50x50", + "scale": "1x", + "idiom": "ipad" + }, + { + "size": "50x50", + "scale": "2x", + "idiom": "ipad" + }, + { + "size": "72x72", + "scale": "1x", + "idiom": "ipad" + }, + { + "size": "72x72", + "scale": "2x", + "idiom": "ipad" + }, + { + "size": "76x76", + "scale": "1x", + "idiom": "ipad" + }, + { + "size": "76x76", + "scale": "2x", + "idiom": "ipad" + }, + { + "size": "120x120", + "scale": "1x", + "idiom": "car" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Resources/LaunchScreen.xib b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Resources/LaunchScreen.xib new file mode 100644 index 00000000..9bbdfe9a --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Resources/LaunchScreen.xib @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Storyboard.Conditional.csproj b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Storyboard.Conditional.csproj new file mode 100644 index 00000000..645f551b --- /dev/null +++ b/ManualStoryboard/Storyboard.Conditional/Storyboard.Conditional/Storyboard.Conditional.csproj @@ -0,0 +1,119 @@ + + + + Debug + iPhoneSimulator + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {33D65BEB-5290-4835-B17F-D093F598170B} + Exe + Storyboard.Conditional + Resources + Storyboard.Conditional + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG; + prompt + 4 + false + i386 + None + true + true + + + full + true + bin\iPhoneSimulator\Release + prompt + 4 + i386 + false + None + + + true + full + false + bin\iPhone\Debug + DEBUG; + prompt + 4 + false + ARMv7, ARM64 + Entitlements.plist + true + iPhone Developer + true + + + full + true + bin\iPhone\Release + prompt + 4 + Entitlements.plist + ARMv7, ARM64 + false + iPhone Developer + + + full + true + bin\iPhone\Ad-Hoc + prompt + 4 + false + ARMv7, ARM64 + Entitlements.plist + true + iPhone Distribution + Automatic:AdHoc + true + + + full + true + bin\iPhone\AppStore + prompt + 4 + false + ARMv7, ARM64 + Entitlements.plist + Automatic:AppStore + iPhone Distribution + + + + + + + + + + + + + + + + + + + + + + + + MainViewController.cs + + + + PinkViewController.cs + + + + \ No newline at end of file