美文网首页Swifty CodingiOS DeveloperiOS第三方资料收集
Swift3.0自定义启动页面(ViewController+x

Swift3.0自定义启动页面(ViewController+x

作者: 小糊涂jun | 来源:发表于2017-03-20 23:55 被阅读293次

       使用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")

}

大功告成😄😄😄

相关文章

网友评论

    本文标题:Swift3.0自定义启动页面(ViewController+x

    本文链接:https://www.haomeiwen.com/subject/zlfwnttx.html