xcode11新项目删除main.storyboard

7 篇文章 0 订阅
3 篇文章 0 订阅

今年的Xcode11无疑是近几年变化最大之一的一个版本了。我也在升级Xcode11后各种踩坑,爽到泪水止不住流啊。

这里就来说说我这两天踩到的一个坑吧,就是用xcode11新建iOS项目后,想要删除默认的main.storyboard,使用自定义的window和controller的坑。

具有一定经验的人想必都知道Xcode11之前,想要达到上面的目的步骤吧。首先就是选中工程文件选项,之后删除Main Interface选项里的Main,如下图:

之后在Appdelegate的didFinishLaunchingWithOptions方法中自定义window并设置为keyWindow和让它显示,如下图:

就这么简单的实现了。

然鹅随着iOS13的推出,在之前AppDelegate的基础上多出了一个SceneDelegate,会将AppDelegate里的lifecycle的那些代理方法转交给SceneDelegate,就是通过AppDelegate里以下两个方法实现的

以下的内容是摘自苹果官方文档:

Overview

A UISceneSession object manages a unique runtime instance of your scene. When the user adds a new scene to your app, or when you request one programmatically, the system creates a session object to track that scene. The session contains a unique identifier and the configuration details of the scene. UIKit maintains the session information for the lifetime of the scene itself, destroying the session in response to the user closing the scene in the app switcher. 

You do not create session objects directly. UIKit creates sessions in response to user interactions with your app. You can also ask UIKit to create a new scene and session programmatically by calling the requestSceneSessionActivation:userActivity:options:errorHandler: method of UIApplication. UIKit initializes the session with default configuration data based on the contents of your app's Info.plist file.

大概意思就是,一个UISceneSession不用你直接去创建对象,你可以用UIApplication里的requestSceneSessionActivation:userActivity:options:errorHandler:方法,这个方法会帮你初始化一个基于info.plist文件里的默认configuration的session对象。

因此xcode11中要实现自己的没有默认main.storyboard的项目,就得将SceneDelegate里的lifecycle转交给AppDelegate,按照上面所说,这一步操作就是,删除或注释一下截图里的两个方法

接近着删除在info.plist里的Application Scene Manifest条目

之后就是xcode11以前的常规操作了,首先,删除info.plist里的Main storyboard file base name条目

之后在AppDelegate.swift里添加window属性,因为xcode默认删除了这个属性,现在你需要将它重新添加回来才行,如果是OC写的话,就在AppDelegate.h里添加这个window属性。

之后就在didFinishLaunch方法里初始化self.window,并设置为keywindow和让它显示,并初始化默认控制器即可。

至此,所有操作就完成了,你可以试试能否成功运行了

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
创建九宫格的步骤如下: 1. 创建一个Xcode 项目,选择 Single View Application。 2. 在 Main.storyboard 中添加一个 UICollectionView。在 Attributes Inspector 中将 Scroll Direction 设置为 Vertical。 3. 在 UICollectionViewCell 中添加一个 UILabel,将其居中,并设置它的控制点约束(Control Point Constraints)为 0。 4. 在 Attributes Inspector 中将 Cell Size 设置为 100 x 100,Minimum Spacing 设置为 0。 5. 在 ViewController.swift 中添加以下代码: ``` import UIKit class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { @IBOutlet weak var collectionView: UICollectionView! let items = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] override func viewDidLoad() { super.viewDidLoad() collectionView.dataSource = self collectionView.delegate = self } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return items.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CustomCell cell.label.text = items[indexPath.row] return cell } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { print("You selected cell #\(indexPath.item + 1)") } } class CustomCell: UICollectionViewCell { @IBOutlet weak var label: UILabel! } ``` 6. 在 Main.storyboard 中选择 UICollectionViewCell,将其 Class 设置为 CustomCell,并将 Identifier 设置为 cell。 这样,你就可以在模拟器中运行你的应用程序,看到一个九宫格了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值