如何在Cordova中从CDVPlugin显示ViewController?

时间:2015-02-04 16:21:02

标签: ios cordova swift cordova-plugins xcode-storyboard

我一直在为此奋斗几天而无法让它发挥作用,也找不到其他似乎已经弄明白的人。希望有人可以提供帮助。

我在Swift的Storyboard中有一个简单的ViewController和2个视图,我试图通过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()
        }
    }
}

如果还有其他任何帮助,请告诉我。提前谢谢!

2 个答案:

答案 0 :(得分:1)

第1步:需要将情节提要导入为

  <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文件。

就这样了.. !!快乐编码

答案 1 :(得分:0)

问题不在代码中,问题是在一个糟糕的提交/合并中,我的故事板和viewcontroller的部分内容被吹走了。恢复文件后,它按预期打开。