回到XCode 5和6次,不推荐将所有视图控制器放在一个故事板上,我的经验证明了这一点:XCode变慢了。
今天的情况如何? XCode 9可以处理这个吗? Apple是否正式建议将所有内容整合到一个单一的故事板中?
答案 0 :(得分:1)
如您所愿,有时您必须在主要故事板中的视图控制器数量增加时执行此操作,以便在应用程序变大且故事板打开/缓慢保存时划分应用程序功能
答案 1 :(得分:1)
你应该以模块方式划分你的故事板。否则你的项目将花费很多时间在故事板上进行一次更改。
我的建议是 您可以使用Storyboard Reference通过segue连接参见示例
https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards
如果您不想要segue,更好的解决方案是在每个viewcontroller中使用抽象方法练习从故事板访问
就像
一样//--------------------------------------------------------------------------------
// MARK: - Abstract Methods
//--------------------------------------------------------------------------------
public class func viewController () -> LoginVC {
return StoryBoard.main.instantiateViewController(withIdentifier: StoryBoard.controller.LoginVC) as! LoginVC
}
//--------------------------------------------------------------------------------
// Now access it with LoginVC.viewController() and do push or present whatever your operation you requred
我在常量文件中管理所有内容
public struct StoryBoard {
static let main = UIStoryboard.init(name: "Main", bundle: nil)
struct controller {
static let LoginVC = "LoginView"
}
}
答案 2 :(得分:1)
在我看来,最好将模块中的应用程序划分为“流程”;例如,我通常创建包含登录/注册内容的入门故事板,或者包含设置菜单和子菜单(均为视图控制器)的设置故事板。 此外,我从不直接在故事板中创建 UITableViewCell 或 UICollectionViewCell ,但我创建了一个专用的 .xib 文件。 我使用相同的@Prashant Tukadiya方法来处理View控制器实例化和故事板处理(以更通用的方式)。
今天的情况如何? XCode 9可以处理这个吗?
我在1 - 2年前参与过一个项目,其中包含一个故事板中的所有视图控制器,我最近在XCode 9中打开它,但它仍然非常慢。
答案 3 :(得分:1)
我为划分的逻辑单元创建不同的故事板并传递对它们的引用(XCode中的Storyboard引用)。它有助于使他们更有条理。另外在GitHub上有一个很好的名为R.swift的库(参见https://github.com/mac-cain13/R.swift),例如Android中的资源文件。它解析所有资源,如图像,笔尖,故事板等,并减少在按名称调用资源时出错的可能性。