gpt4 book ai didi

ios - 如何在 Cordova 中从 CDVPlugin 显示 ViewController?

转载 作者:行者123 更新时间:2023-11-28 07:11:21 28 4
gpt4 key购买 nike

我已经为此苦苦挣扎了几天,但无法让它发挥作用,也找不到其他人似乎已经解决了这个问题。希望有人能提供帮助。

我在 Swift 的 Storyboard 中有一个简单的 ViewController 和 2 个 View ,我试图通过 Cordova 插件打开它(Android 版本有效)。我已经达到了它不会出错的地步,我看到每一行代码都被命中了,但我仍然没有看到 ViewController 显示。该应用程序的独立版本运行良好。

这是插件调用的代码:

import Foundation

@objc(SomePlugin) class SomePlugin : CDVPlugin {
func show(command: CDVInvokedUrlCommand) {
// step 1. take a storyboard variable
var storyBoard:UIStoryboard? = nil
storyBoard = UIStoryboard(name: "Main", bundle: nil)

// step 2. un-box storyboard to sb variable
if let sb = storyBoard {

// step 3. create new window
var window = UIWindow(frame: UIScreen.mainScreen().bounds)

// step 4. start view controller
window.rootViewController = sb.instantiateInitialViewController() as ViewController

// step 5. make key window & visible
window.makeKeyAndVisible()
}
}
}

如果还有什么需要帮助的,请告诉我。提前致谢!

最佳答案

第 1 步:需要将 Storyboard导入为

  <resource-file src="src/ios/MyStoryboard.storyboard"/>

第 2 步:将您的框架导入为

  <framework src="src/ios/helloSwiftFrame.framework" custom="true"/>

在plugin.xml中做以上两步

第 3 步:现在来到您的插件中的 .m 文件

   UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil];
UIViewController *yourViewController = [storyboard instantiateViewControllerWithIdentifier:@"MyStoryID"] ;
[self.viewController presentViewController: yourViewController animated:YES completion:nil];

也不要忘记在 .m 文件中导入您的框架。

大功告成..!!快乐编码

关于ios - 如何在 Cordova 中从 CDVPlugin 显示 ViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com