Search code examples
iosswiftstoryboardsplash-screen

Splash screen orientation lock


Can we have the orientation locked for splash screen in potrait for the app that supports all orientations?Currenly when I launch the app while device is landscape makes the splash screen looking really ugly,and I need it only in portrait.


Solution

  • If you would like to use a launch screen storyboard in a single orientation, change the info.plist to specify that orientation only.

    Then if you would like to have the app run different orientations after the launch screen storyboard has finished, then simply add the following method to your app delegate (objective-c):

    - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
    {
        UIInterfaceOrientationMask theMaskToReturn = UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | "etcetera";
    
        return  theMaskToReturn;
    }
    

    Then use a single navigation controller for your entire app (and if you subclass this single navigation controller it must have the same masktoreturn as above).

    Then in each VC you can specify the supported orientations.

    Note that if you are sharing via MFMailComposer or an ActivityVC which are both presented from self in a VC, then the masktoreturn must include the permissible orientations.