Swift

2015-07-02 36 views
6

'in birden fazla film şeridi, her biri farklı bir cihaz için (iphone4, 5, 6, 6+) 4 film şeridine sahip bir uygulamam var. Otomatik kısıtlamaları kullanmaya çalıştım ancak uygulamam karmaşık olduğundan, bunu anlayamadım. Birden fazla öykü tahtanız varsa, uygulama temsilcisinde hangi hikaye panosunun kullanılacağını belirlemenin bir yolu olması gerektiğini duydum. Uygulama temsilcisindeki uygun cihaz için uygun film şeridini belirleme konusunda nasıl giderim?Swift

iphone4s.storyboard
teşekkür ederiz iphone6plus.storyboard

iphone6.storyboard

iphone5.storyboard: Şu anda adında dört görsel senaryoları var.

+0

neden 4 storyboard kullanıyorsunuz, tek bir storyboard içinde tüm aygıtları işlemek için broz, plz işleri optimize et. –

cevap

1

Adı belirlendiğinde storyboard'u alan bir işlev uygulayın.

func getStoryBoard(name : String)-> UIStoryboard 
{ 
    var storyBoard = UIStoryboard(name: name, bundle: nil); 
    return storyBoard; 
} 

Değişim gibi uygulama temsilci yöntemi: Çeşitli cihaz için farklı görsel senaryolar başlatmak amacıyla

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
{ 
    var storyBoard = getStoryBoard("Main") // Change the storyboard name based on the device, you may need to write a condition here for that 
    var initialViewController: UIViewController = storyBoard.instantiateInitialViewController() as! UIViewController 
    self.window?.rootViewController = initialViewController 
    self.window?.makeKeyAndVisible() 
    // Override point for customization after application launch. 
    return true 
} 
+0

Bu cevap iş parçasının dibine gömülmüş olsa da, çalışan tek kişi oydu. Üzgünüm, bu kadar uzun sürdü. –

3

biz size applicationdidFinishLaunchingWithOptions yönteminde AppDelegate gelen film şeridi geçersiz kılabilir sorulan gibi nasıl ekran boyutu ve kısıtlamalar

bağlı kendi görüşünü düzeni bilir kullanımını autoLayout yapmak bugünlerde Bana göre

let storyBoard : UIStoryboard = UIStoryboard(name: "iphone4s", bundle: nil) 
    //you can check your device and override the storyboard name 
    let initialViewController: UIViewController = storyBoard.instantiateInitialViewController()! 
    self.window?.rootViewController? = initialViewController 
1

, sen rootViewController Nesne geçersiz kılmak gerekir. Ayrıca, Proje ayarlarında ve Storyboard'da birkaç ayarı geçersiz kılmanız gerekir. Ekli görüntüleri bakın. enter image description here