iMessage 扩展:从不同的目标获取 bundle nil
Posted
技术标签:
【中文标题】iMessage 扩展:从不同的目标获取 bundle nil【英文标题】:iMessage Extension : Getting bundle nil from different target 【发布时间】:2017-01-26 14:18:48 【问题描述】:我有一个现有的应用程序并想创建一个 iMessage 扩展程序。
所以我在我的项目中添加了目标 iMessage 扩展。现在我想通过容器视图在该扩展中显示我现有的视图。我添加了代码:
let mainBundle = Bundle(identifier:"com.marvel.nearby")
print("MAIN_BUNDLE : \(mainBundle)") // getting nil
let storyboard = UIStoryboard(name: "Main", bundle: mainBundle)
let viewController = storyboard.instantiateViewController(withIdentifier: "MResourcesVC")
self.showViewControllerInContainerView(viewController)
在 Swift iMessage 扩展类中:MessagesViewController.swift
但得到零。我该怎么办?
如果这种方式是错误的,那么在 iMessage 扩展中显示 viewcontroller 的正确方式是什么。
【问题讨论】:
【参考方案1】:您必须将storyboard.storyboard
文件添加到您的目标:
要获得正确的捆绑包,请使用:
Bundle(for: type(of: self))
【讨论】:
我尝试过,但我必须通过 bundle 访问它,我得到 bundle nil 更新答案。 如果已经安装了 pod,我该如何使用呢? 1.) 如果这解决了您的问题,请接受答案。 2)我不明白“如果已经安装了 pod,我该如何使用它”。请花一些时间并努力提出问题。你是说 CocoaPods 吗?如果是这样,我不明白 Bundle 问题与 Pod 的上下文? 实际上在现有项目中我正在使用 sdwebache pod,它在 viewcontroller 中我正在使用它,并且我希望在扩展中也显示相同的视图控制器以上是关于iMessage 扩展:从不同的目标获取 bundle nil的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从容器应用程序中打开 iMessage 扩展程序?