Ricevo l'errore nell'oggetto dopo l'aggiornamento di questa mattina a 8.3.Swift Deve chiamare un inizializzatore designato della superclasse uiinputviewcontroller
Il codice sotto utilizzato per funzionare perfettamente, tuttavia non viene compilato più. Qualcuno di voi può aiutarmi?
protocol CustomAccessoryProtocol {
func controlButtonPressed(tag:Int)
}
class CustomAccessory : UIInputViewController {
var accessoryView : UIView!
var delegate : CustomAccessoryProtocol!
@IBOutlet weak var returnButton: UIButton!
@IBOutlet weak var backButton: UIButton!
@IBOutlet weak var forwardButton: UIButton!
init(delegate: CustomAccessoryProtocol){
super.init()
self.delegate = delegate
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
let customNib = UINib(nibName: "CustomAccessory", bundle: nil)
accessoryView = customNib.instantiateWithOwner(self, options: nil)[0] as! UIView
}
@IBAction func buttonPress(sender: AnyObject) {
delegate.controlButtonPressed(sender.tag!)
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(accessoryView)
}
}
Mi chiedo quale sia l'inizializzatore designato per UIInputViewController? Non 'init (frame: CGRect)' presumo. ? – clearlight
Il primo init non è un init conveniente? Devi aggiungere parole chiave di convenienza ad esso? Non ne ho una scienza. Ho avuto alcuni casi in cui ho dovuto lottare per un po 'per capirlo. Sulla base degli inizializzatori che * hai *, presumo che tu abbia letto la [documentazione] Swift (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html) sull'argomento in qualche punto ... – clearlight
Qualcosa è cambiato nei documenti 8.3 per UIInputViewController o UIViewController? – clearlight