我有一个带有按钮的UIViewController,可以打开模态/弹出窗口(XIB)
我使用此代码:
let aView: myView1 = UINib(nibname: "AView", bundle : nil).instantitate(withOwner: self, options: nil)[0] as! myView1
aView.frame = self.view.frame
self.view.addSubView(aView)
Modal包含一个应该打开Form(另一个XIB)的按钮
我使用此代码:
let bView: myView2 = UINib(nibname: "BView", bundle : nil).instantitate(withOwner: self, options: nil)[0] as! myView2
bView.frame = self.view.frame
self.view.addSubView(bView)
但我得到编译时错误,说:
类型的价值' AView'没有会员'查看'
当我更改代码时:
self.view.addSubview(bView)
为:
self.addSubview(bView)
在UIView中使用上面的行时出现运行时错误:
此类不是键视图的键值编码兼容。
如果我将上述行重新定位到UIViewController,我会得到一个不同的错误:
无法将自我添加为子视图
是否有其他方法可以从另一个UIView打开UIView,而无需返回或更改UIViewController?
答案 0 :(得分:0)
首先,我建议将班级名称从myView1
更改为MyView1
,与myView2
相同。然后将您的nib文件file's owner
从界面构建器设置为MyView1
和MyView1
。
在以下电话中将此withOwner: self
更改为nil
:
let aView:myView1 = UINib(nibname: "AView", bundle : nil).instantitate(withOwner: self, options: nil)[0] as! myView1
OR
您可能需要从界面构建器中删除file's owner
。