如何展示我的可可触摸框架故事板屏幕?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何展示我的可可触摸框架故事板屏幕?相关的知识,希望对你有一定的参考价值。

我用故事板创建了一个简单的Cocoa触摸框架。在我的框架中,我有一个MainViewController.swift视图控制器。我创建了一个新的单一视图项目,导入我的框架并尝试加载我的框架viewcontroller,但我得到了黑屏。我不知道为什么。

我尝试使用以下代码加载框架:

let frameworkScreen : UIViewController = MainViewController()
    self.presentViewController(frameworkScreen, animated: true, completion: nil)
答案

您需要通过从框架中的storyboard实例化来加载视图控制器。

这是如何做。首先是一些初始条件:

  • 假设您的框架名为Coolness。
  • 假设你的框架的故事板叫做CoolnessStoryboard.storyboard。
  • 假设您的框架有一个名为CoolnessViewController的public类。
  • 假设CoolnessStoryboard有一个场景,其视图控制器是CoolnessViewController,这是它的初始视图控制器。

然后在你的主要代码中,你将qazxsw poi,并从故事板呈现你的Coolness ViewController,你会说:

import Coolness

请注意这里的策略。从目标向后工作。我们需要故事板中的CoolnessViewController实例。为此,我们需要对该故事板的引用。为此,我们需要确定故事板。怎么样?我们可以通过名称和它所在的包来识别它。但是我们如何识别该包呢?我们可以通过该捆绑中的类来识别捆绑。我们有这样一个类,因为我们已经导入了框架(let s = UIStoryboard ( name: "CoolnessStoryboard", bundle: NSBundle(forClass: CoolnessViewController.self) ) let vc = s.instantiateInitialViewController() as! UIViewController self.presentViewController(vc, animated: true, completion: nil) ),而类有import Coolness(所以我们可以说它)。

另一答案

我有同样的问题。这是我经过一些研究后解决的问题:

1 - 我有一个名为“Messenger.framework”的框架

2 - 在里面,我有一个名为“Messenger.Storyboard”的故事板文件

3-我的初始视图控制器是一个带有rootViewController和我的ChatController的UINavigationController。

这就是我的框架聊天UIViewController的现状:

public

我希望这可以帮助你。

另一答案

如果您的框架名称是- (void)presentChatController { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Messenger" bundle:[NSBundle bundleForClass:ChatController.class]]; ChatController *controller = [storyboard instantiateViewControllerWithIdentifier:@"Chat"]; [self.navigationController pushViewController:controller animated:YES]; } ,并且storyboard名称是MyFramework,则带有一个带有storyboard id Main的viewcontoller

vc

我使用cocoapods包含了框架。

以上是关于如何展示我的可可触摸框架故事板屏幕?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 pod(第三方框架)添加到我的自定义可可触摸框架中?

在多个应用程序中使用可可触摸框架项目

我在可可触摸应用程序中的按钮没有正确返回我的位置

在可可触摸框架中隐藏实现

呈现 UIView 的最少代码

可可触摸框架资产在 App Project 中不可见