【发布时间】:2016-05-27 18:37:13
【问题描述】:
我想让我的 Swift 项目从框架而不是项目本身加载它的主要故事板和视图控制器。
这可能吗?
欢迎大家帮忙。
【问题讨论】:
标签: swift uistoryboard viewcontroller
我想让我的 Swift 项目从框架而不是项目本身加载它的主要故事板和视图控制器。
这可能吗?
欢迎大家帮忙。
【问题讨论】:
标签: swift uistoryboard viewcontroller
我相信您早就解决了您的问题,但请在此处发布答案,以防它对从 Google 发现它的其他人有用。
您可以通过从导航器中选择您的项目、从左侧面板中选择应用程序目标并进入“信息”选项卡来指定另一个故事板作为主故事板。 “主故事板基本文件名”有一个设置。
对于您的具体问题,这可能不是您想要的。相反,打开应用程序的 Main.storyboard,突出显示视图控制器,打开 Identity Inspector,然后将 Class 设置为框架中的类。为了让它适用于我的项目,我实际上必须删除现有的 Main.storyboard,创建一个新的,在其上放置一个 View Controller,然后首先从 Attributes Inspector 中设置“Is Initial View Controller”。
【讨论】:
更新答案:
假设您有一个名为 myLogin 的框架,其中包含一个 ID 为“frameworkStoryboard”的故事板和一个 ID 为“login”的视图控制器。 你会
import myLogin
加载你的框架,然后放入你的代码
let storyBoard = NSStoryboard(name: "frameworkStoryboard", bundle: nil) as NSStoryboard
let loginViewController = storyBoard.instantiateControllerWithIdentifier("login") as! NSViewController
view.window?.contentViewController = loginViewController
加载您的故事板和相应的视图。
基本上,您可以为两个名称(故事板和控制器)使用变量,而不仅仅是写下来。 该示例适用于 osx,iOS 的唯一区别是使用 UIViewController 而不是 NSViewController,情节提要也是如此,您也不会在 iOS 上以相同的方式呈现控制器(此示例将切换当前窗口内容视图而不是呈现它。
【讨论】: