2016-01-12 5 views
0

Я использую этот код для загрузки каждой раскадровки в зависимости от экрана, но только тот, который работает в 480, а все остальные не работают там просто пустымНесколько раскадровки не работает

Как я могу исправить эту Благодаря

var window: UIWindow? 

    func grabStoryboard() -> UIStoryboard { 
     var storyboard = UIStoryboard() 
     let height = UIScreen.mainScreen().bounds.size.height 

     if height == 480 { 
      storyboard = UIStoryboard(name: "main3.5", bundle: nil) 


     if height == 568 { 
       storyboard = UIStoryboard(name: "main4", bundle: nil) 
      } 


     if height == 667 { 
       storyboard = UIStoryboard(name: "main6", bundle: nil) 
      } 

     if height == 736 { 
       storyboard = UIStoryboard(name: "main6plus", bundle: nil) 
      } 
     } else { 
      storyboard = UIStoryboard(name: "Main", bundle: nil) 
     } 
     return storyboard 
    } 

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


     let storyboard: UIStoryboard = self.grabStoryboard() 

     self.window?.rootViewController = 
      storyboard.instantiateInitialViewController()! as UIViewController 
     self.window?.makeKeyAndVisible() 
     return true 
    } 
+0

Не рекомендуется использовать такие раскадровки, любые изменения, которые вы делаете с ними, и вам придется применять их ко всем, увеличивая риск ошибки. Я предлагаю вам использовать автоматический макет и иметь макет пользовательского интерфейса в зависимости от размера экрана. – EmilioPelaez

ответ

0

Ваш синтаксис неверен. Вы должны использовать операторы if-else в правильном порядке, как показано ниже. Вы можете проверить документацию Swift Swift Control Flow. Перейдите в раздел Conditional Statements.

func grabStoryboard() -> UIStoryboard { 
    var storyboard = UIStoryboard() 
    let height = UIScreen.mainScreen().bounds.size.height 

    if height == 480 { 
     storyboard = UIStoryboard(name: "main3.5", bundle: nil) 
    } else if height == 568 { 
     storyboard = UIStoryboard(name: "main4", bundle: nil) 
    } else if height == 667 { 
     storyboard = UIStoryboard(name: "main6", bundle: nil) 
    } else if height == 736 { 
     storyboard = UIStoryboard(name: "main6plus", bundle: nil) 
    } else { 
     storyboard = UIStoryboard(name: "Main", bundle: nil) 
    } 

    return storyboard 
} 
1

Если для 568, 667 и 736 находятся внутри инструкции 480, они никогда не будут достигнуты. Надеюсь, это поможет.

Смежные вопросы