Swift3.0自定义启动页面(ViewController+x
使用Xcode最新版创建iOS工程,默认页面布局方式是storyboard,当然我们也可以使用xib的方式实现页面,自定义xib和ViewController,并且指定自定义的ViewController为应用启动页面,具体步骤总结如下:
一、创建xib和ViewController
项目目录下右键新建文件(command+N),选择Cocoa Touch Class,我这里取名MyLaunchVC,继承自UIViewController,同时勾选Also Create XIB File,点击完成,会在项目目录下生成一个MyLaunchVC.swift和MyLaunchVC.xib的文件,打开xib,随便拖动一个view视图,便于一会观察页面效果。
二、删除项目默认的storyboard和ViewController
项目创建成功后,会默认带有ViewController、Main.storyboard和Launch.storyboard,由于本篇文章尝试使用xib的方式布局并指定为启动页面,因此ViewController、Main.storyboard和Launch.storyboard可以删除,具体方法为:
1、分别选中ViewController、Main.storyboard和Launch.storyboard点击Delete,弹出的弹窗选择Move to Trash;
2、打开Info.plist,删除Launch screen interface file base name和Main storyboard file base name两项;
3、点击项目名称,中间面板顶部选择General,找到Deployment Info,将下边的Main Interface设置为空,再往下找到App Icons And Launch Images,将其下的Launch Screen File选择为MyLaunchVC.xib(注:这里不能为空,否则模拟器调试出现上下黑边)
三、设置自定义ViewController为启动页
进行完上述工作后,只差最后一步,即将新建的MyLaunchVC.swift,在工程的AppDelegate.swift的application方法中加入指定根视图控制器的代码,具体代码如下:
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window?.backgroundColor = UIColor.white
window?.rootViewController = MyLaunchVC()
window?.makeKeyAndVisible()
return true
}
可能在iOS8.0真机调试会出现问题,在MyLaunchVC.swift加入初始化方法,具体如下:
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
convenience init() {
let nibNameOrNil = String?("MyLaunchVC")
self.init(nibName: nibNameOrNil, bundle: nil)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
大功告成😄😄😄