【发布时间】:2019-08-19 19:40:01
【问题描述】:
我只想在特定 iPhone 尺寸加载应用时加载特定故事板。 我真的很难使用自动布局来获得想要的结果。
我做了很多搜索,发现有人在 4 年前分享的代码并尝试使用它,但我遇到了很多错误,请有更多知识的人看看代码,看看它是否需要更新?
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject:
AnyObject]?) -> Bool {
var bounds: CGRect = UIScreen.mainScreen().bounds
var screenHeight: NSNumber = bounds.size.height
var deviceFamily: String
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "iphone35Storyboard", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("iphone35") as UIViewController
self.window!.rootViewController = viewcontroller
if screenHeight == 480 {
deviceFamily = "iPhoneOriginal"
// Load Storyboard with name: iPhone4
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "Main", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("iphone4") as UIViewController
self.window!.rootViewController = viewcontroller
} else {
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "IpadStoryboard", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("ipad") as UIViewController
self.window!.rootViewController = viewcontroller
if screenHeight == 920 {
deviceFamily = "Pad"
// Load Storyboard with name: ipad
var mainView: UIStoryboard!
mainView = UIStoryboard(name: "IpadStoryboard", bundle: nil)
let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("ipad") as UIViewController
self.window!.rootViewController = viewcontroller
}
}
}
遇到的错误 -
实例方法 'application(application:didFinishLaunchingWithOptions:)' 几乎匹配协议 'UIApplicationDelegate' 的可选要求 'application(_:didFinishLaunchingWithOptions:)'
“instantiateViewControllerWithIdentifier”已重命名为“instantiateViewController(withIdentifier:)”
不能调用非函数类型'UIScreen'的值
无法将“CGFloat”类型的值转换为指定的“NSNumber”类型
【问题讨论】:
-
不要使用任何代码,扔掉它并学习自动布局。如果您正在为此苦苦挣扎,请发布一个问题。这是一个非常简单的 API,可以很快学会。
-
谢谢,但如果可能的话,我真的只需要让上面的代码工作。
-
自动布局和故事板旨在完全按照您的问题要求执行。苹果不希望你按照自己的方式去做。如果他们看到你这样做,没有人会雇用你作为程序员。用正确的方法学习它,非常简单。如果您无法获得自动布局或故事板工作,请在此处发布问题,我们将很乐意回答。但是上面的代码是一个完整的非入门 IMO。
标签: swift storyboard screen-size