2015-09-05 150 views
0

场景:我正在为iOS开发混合Cordova(Phonegap)应用程序。为了混合原生代码和Cordova代码,我在Xcode 7中创建了一个故事板,其中UIView嵌入在容器视图中(使用嵌入segue),以便能够在整个本机应用程序中重新使用Web视图。iOS:如何以编程方式将视图添加到故事板视图

对于科尔多瓦视图的嵌入,我发现这些指令: http://cordova.apache.org/docs/en/edge/guide_platforms_ios_webview.md.html#iOS%20WebViews

这基本上是说,你必须把这个:

CDVViewController* viewController = [CDVViewController new]; 
viewController.view.frame = CGRectMake(0, 0, 320, 480); 
[myView addSubview:viewController.view]; 

,但他们没有解释如何添加查看故事板视图。我特别要问自己如何处理CGRectMake,因为我希望视图能够响应呈现,即将自己调整为父视图的约束(而不是具有固定的矩形)。

我已经通过派生自Cordova的标准应用程序委托实现了这一点,但是这一定是错误的做法。当我给科尔多瓦的相机打电话时,拍照并回到我的网络视图,网页视图突然跳出它的边界(到窗口的顶部),并在Xcode控制台中看到此错误消息:

Presenting view controllers on detached view controllers is discouraged 

PS:我实际上使用Swift,但我能够读取Objective-C代码,所以这些语言中的代码示例对我来说都很好。

回答

1

只需创建存在于你的故事板视图的出口,它连接并添加子视图

@IBOutlet weak var containerView: UIView! 

func addMySubview() { 
var viewController = CDVViewController() 
viewController.view.frame = containerView.frame 
containerView.addSubview(viewController.view) 
} 

编辑: 在这里,我没有在操场的例子,所以你可以看到你的视图的框架随着父母的变化。 Example

+0

感谢您快速回答。是的,到目前为止,这部分是清楚的。但是,我如何附加正确的框架?我不想有一个固定的CGRect大小。 – waldgeist

+0

很抱歉使用swift,但我想你明白。 –

+0

感谢您的更新! – waldgeist

相关问题