为 iPad 横向创建容器视图包装器?

Create container view wrapper for iPad landscape?

我正在尝试制作一个包装器,如果设备是 iPad,它将添加额外的功能,如果不是,则应用程序应该在没有包装器的情况下继续通过故事板。

包装器是一个具有两个容器视图的视图控制器。大的用于主要功能,小的用于附加 iPad 功能。

容器的连接被转储到正常故事板入口点所在的位置。

那么有没有一种方法可以根据使用的设备设置多个入口点?这样一个可以有包装,另一个没有。

这是 AppDelegate 中的内容

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        let storyboard = UIStoryboard(name: "Main", bundle: nil)

        let iPadEntryViewController = storyboard.instantiateViewControllerWithIdentifier("iPadWrapperView") as! UIViewController
        let iPhoneEntryViewController = storyboard.instantiateViewControllerWithIdentifier("iPhoneEntryPointView")as! UIViewController

        if (/* SOME ACTION */ false) {
            self.window?.rootViewController = iPadEntryViewController
            self.window?.makeKeyAndVisible()

        }
        else {
            self.window?.rootViewController = iPhoneEntryViewController
            self.window?.makeKeyAndVisible()
        }

        return true
    }

那么在 if 语句中检查设备是否是 iPad?

以下是我发现如何检测设备并专门为 Swift 分配入口点的方法。原来这是一个简单的枚举,可以在 UIDevice

下访问
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        let storyboard = UIStoryboard(name: "Main", bundle: nil)

        let iPadEntryViewController = storyboard.instantiateViewControllerWithIdentifier("iPadWrapperView") as! UIViewController
        let iPhoneEntryViewController = storyboard.instantiateViewControllerWithIdentifier("iPhoneEntryPointView")as! UIViewController

        if (UIDevice.currentDevice().userInterfaceIdiom == .Phone) {
            self.window?.rootViewController = iPhoneEntryViewController
            self.window?.makeKeyAndVisible()

            println("Application will begin as iPhone app")

        }
        else {
            self.window?.rootViewController = iPadEntryViewController
            self.window?.makeKeyAndVisible()

            println("Application will begin as iPad app")
        }

        return true
    }