在Variable "form" does not exist in ::landing.html.twig at line 50
500 Internal Server Error - Twig_Error_Runtime
内,我有三个SearchTokenViews.xib
。我知道我可以像这样访问那个笔尖:
UIViews
然后:
let searchTokenViewsNIB = NSBundle.mainBundle().loadNibNamed("SearchTokenViews", owner: self, options: nil)
但是什么决定了那三个的顺序?通过类似于视图控制器的let firstSearchToken = searchTokenViewsNIB.first as! SearchTokenView
let secondSearchToken = searchTokenViewsNIB[1] as! SearchTokenView
let thirdSearchToken = searchTokenViewsNIB.last as! SearchTokenView
来访问它会不会更好?
restorationIdentifier
如何使用UIView和.xib文件执行相同操作?
答案 0 :(得分:1)
到目前为止我找到的唯一解决方案是:
extension NSBundle {
func loadNibNamed(named: String, owner: AnyObject!, identifier: String) -> UIView? {
return loadNibNamed(named, owner: owner, options: nil).filter({ $0.restorationIdentifier == identifier }).first as? UIView
}
}
答案 1 :(得分:1)
遵循苹果指南here:
此属性指示视图中的状态信息是否应该 保存;它也用于识别期间的视图 恢复过程。默认情况下,此属性的值为nil, 表示不需要保存视图的状态。 将字符串对象分配给属性可以拥有视图 控制器知道视图有相关的状态信息来保存
仅设置此属性的值不足以确保这一点 视图被保留和恢复。
总之,通过仅使用此属性来“实例化”新视图几乎是不可能的。