我甚至不能100%确定这属于这里,但我需要一些帮助。
基本上,我有3套文件: 具有ViewController的Storyboard Viewcontroller 笔尖>调节器 笔尖>控制器
storyboard tableviewcontroller将其中一个nib作为表格单元格加载,另一个只是添加到主故事板视图顶部的视图。
为了说明我在做什么,这里是代码:
let pickerView = UINib(nibName: "DateTimePickerView", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! DateTimePickerView
let testFrame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: 200)
pickerView.frame = testFrame
ReserveView.addSubview(pickerView)
pickerView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint(item: pickerView, attribute: .Leading, relatedBy: .Equal, toItem: view, attribute: .LeadingMargin, multiplier: 1.0, constant: 0).active = true
NSLayoutConstraint(item: pickerView, attribute: .Trailing, relatedBy: .Equal, toItem: view, attribute: .TrailingMargin, multiplier: 1.0, constant: 0).active = true
NSLayoutConstraint(item: pickerView, attribute: .Bottom, relatedBy: .Equal, toItem: view, attribute: .BottomMargin, multiplier: 1.0, constant: 0.0).active = true
这会将nib添加到显示的视图的底部。我想要完成的是:
在另一个作为表格单元格加载的笔尖中:我想要从视图顶部绘制的pickerView中与按钮,标签等进行交互。
希望这张图片可以帮助澄清我想要做的事情,你可以告诉我为什么这是错误的...因为它不是正确的方式。
最终," pickerView"将出现在按钮单击上,然后在用户选择并确认日期时隐藏。
答案 0 :(得分:0)
根据我的理解,你有一个故事板,用一个tableView和单元格加载一个笔尖,以及一个带有选择器视图的笔尖。
如果您的故事板包含对tableview及其需要更改的内容的引用,则可以将closures与pickerview一起使用。
在您的选择器视图中添加以下内容:
var didChange: ((value: String)->())?
在storyboard类中添加以下代码:
func pickerDidChange(value: String) {
debugPrint("The picker changed")
}
在您初始化选择器视图的位置,在addSubview
:
pickerView.didChange = pickerDidChange
现在,在您的pickerDidChange
函数中,您将获取所需的数据,并将其应用于tableView中的单元格,您可以参考这些单元格。
在pickerview中,您将在onChange方法中添加以下内容:
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if let didChange = didChange {
didChange("something")
}
}
如果您使用的是UIDatePicker
,请返回NSDate
代替...我认为更合适。
我希望我能正确理解你的问题,这解决了你的问题。