我试图以编程方式在Swift
中向主ViewController
添加自定义UIViewController
类(UIPickerView
)(不使用情节提要),但收到以下错误消息。。。
“无法将”HabitViewViewController“类型的值转换为预期的参数类型”UIView“
自定义UIPicker类:
import UIKit class HabitViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate { @IBOutlet weak var myPicker: UIPickerView! @IBOutlet weak var myLabel: UILabel! let pickerData = ["Mozzarella","Gorgonzola","Provolone","Brie","Maytag Blue","Sharp Cheddar","Monterrey Jack","Stilton","Gouda","Goat Cheese", "Asiago"] override func viewDidLoad() { super.viewDidLoad() myPicker.delegate = self myPicker.dataSource = self } //MARK: - Delegates and data sources //MARK: Data Sources func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return pickerData.count } //MARK: Delegates func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return pickerData[row] } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { myLabel.text = pickerData[row] } func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? { let titleData = pickerData[row] let myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 26.0)!,NSForegroundColorAttributeName:UIColor.blue]) return myTitle } func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { var pickerLabel = view as! UILabel! if view == nil { //if no label there yet pickerLabel = UILabel() //color the label's background let hue = CGFloat(row)/CGFloat(pickerData.count) pickerLabel?.backgroundColor = UIColor(hue: hue, saturation: 1.0, brightness: 1.0, alpha: 1.0) } let titleData = pickerData[row] let myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 26.0)!,NSForegroundColorAttributeName:UIColor.black]) pickerLabel!.attributedText = myTitle pickerLabel!.textAlignment = .center return pickerLabel! } }
主UI视图
import UIKit // Activity Month view Class (Type BaseCell - cleaner) class PlantCell: BaseCell { // UIpicker for habit let habitPicker: HabitViewController = { let habit = HabitViewController() return habit }() // Overrided as it uses the baseCell superclass override func setupViews() { // Add subviews addSubview(habitPicker) // Horizontal constraints addConstraintsWithFormat(format: "H:|-[v0]-|", views: habitPicker) // Vertical constraints addConstraintsWithFormat(format: "V:|-250-[v0(20)]", views: habitPicker) } }
基室
import UIKit // Superclass to initalise all base UICollectionView cells class BaseCell: UICollectionViewCell { override init(frame: CGRect) { // When dequeueReusableCell is called this init method is called if it needs a new cell super.init(frame: frame) setupViews() } func setupViews() { } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }
addSubview(habitPicker)
预期的参数是UIView,因此您可以通过AddSubView(hibitPicker.view)
简单地修复它。并且记住调整habitpicker.view
帧大小合适。
我不知道这是否是搜索“在子视图中添加UIViewController”的正确键。正如您在我的图像中看到的,有两个ViewController,主控制器和第二个控制器。主控制器内部有一个UIView(蓝色背景色)。在UIView中,我想在UIView中添加第二个ViewController。我有这个代码,但不起作用。 这是我的密码 我想知道这是否可行?我知道在xib文件中工作,我不知道在google
问题内容: 我们有一个测试套件,主要使用带有Hamcrest匹配器的JUnit断言。我们的一个团队开始对AssertJ进行实验,并以其语法,灵活性和声明性给人留下了深刻的印象。JUnit提供的一项功能是我无法在AssertJ中找到与之等效的功能:添加自定义断言失败消息。 我们经常在比较不是为了人类可读性而制成的对象,这些对象将具有随机查找的Id或UUID,并且无法通过包含的数据来判断它们应该是什么
我们经常比较那些不是为了人类可读性而制作的对象,这些对象将具有随机的ID或UUID,并且不可能根据它们包含的数据来判断它们应该是什么。对于我们的代码库来说,这是一个不可避免的情况,可悲的是,它实现的目的之一是在其他服务之间映射数据,而不需要理解它是什么。 在JUnit中,方法提供的版本在参数之前带有参数。这使得添加一个简短的调试字符串变得微不足道,从而揭示了一些问题,比如比较对人类应该意味着什么。
问题内容: python是否有将其他转换类型添加到字符串格式的方法? 在基于字符串的格式中使用的标准转换类型类似于字符串,十进制等。我想做的是添加一个新字符,我可以为此指定一个自定义处理程序(例如lambda函数),返回要插入的字符串。 例如,我想添加为一种转换类型,以指定应转义该字符串以便在HTML中使用。举个例子: 并将其用于产生以下输出: 问题答案: 您可以为html模板创建自定义格式器:
问题内容: 我试图将视图控制器转换为详细视图控制器,但不能。我正在使用Core Data(第一次)。错误发生在prepareForSegue方法中,显示为:“无法将类型’UIViewController’(0x1b81cdc)的值强制转换为’Patternz.PatternDetailViewController’(0x32488)。(lldb)” 希望能解释为什么它不起作用。这是文件。 View
问题内容: 我想列出UIViewController的传出脚本,如以编程方式枚举UIViewController的传出脚本所述,但在Swift中。(Swift 2,Xcode7,iOS8 +)。 我可以 并且产生像 但是之后我很难产生任何东西。我找不到的任何定义。我该如何说服Swift告诉我其中的内容?我如何找到segue? 谢谢! 问题答案: 这 是 UNDOCUMENTED 属性,是 UNDO
我想创建一个产品从前端直接到一个分组的产品在WooCommerce。现在它正在“简单产品”中创建一个产品。 截图: 当前代码:
安全测试人员声称,我应该清理返回的JSON(即转义这些符号),因为这可能会给旧的浏览器带来一些问题(即在浏览器中执行此JS代码)。 但是生成错误消息的是SpringBoot框架, 我在这里没有太多的控制权。 当然,我可以将参数定义为String,并自己进行验证,但我怀疑这是否是正确的方法。我的参数定义为Integer,我希望它保持这种方式。 做这件事最简单的方法是什么?