2015-07-07 6 views
0

Я пытаюсь создать оболочку, которая добавит дополнительные функции, если устройство является iPad, если это не приложение, должно продолжаться, хотя раскадровка без оболочки.Создать упаковку контейнера для iPad?

enter image description here

Оболочка представляет собой контроллер View с двумя видами контейнеров. Большой - для основной функциональности, а маленький - для дополнительной функциональности 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 
    } 

Так что бы в, если заявление, чтобы проверить, если устройство является IPad?

+0

возможно дубликат [Programatically установить начальный контроллер представления с использованием раскадровки] (http://stackoverflow.com/questions/10428629/programatically-set-the -initial-view-controller-using-storyboards) –

+0

Право. Я действительно использовал этот источник, чтобы настроить приложение appDelegate. Что все сделано, за исключением инструкции if(), где я мог проверить, является ли устройство iPad (что я не знаю, как это сделать). Я обновлю свой вопрос, чтобы отразить это. – Cole

+0

http://stackoverflow.com/questions/10167221/ios-detect-if-user-is-on-an-ipad –

ответ

0

Вот как я нашел, как определить устройство и назначить точку входа для 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 
    }