Tôi không thể thêm phương thức init vào lớp UIViewController sau đây. Tôi cần viết một số mã trong phương thức init. Tôi có phải viết phương thức init (coder) không? Ngay cả khi tôi thêm các phương pháp mã hóa và giải mã, tôi vẫn gặp lỗi. Tôi cũng đã thử bằng cách sử dụng phương pháp init mà không có bất kỳ tham số nhưng điều đó cũng không có vẻ làm việc.Cách viết phương thức init của UIViewController trong Swift
class ViewController: UIViewController {
var tap: UITapGestureRecognizer?
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nil, bundle: nil)
tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
}
...
...
}
Nếu tôi gọi phương thức super.init() không có tham số lỗi là "Phải gọi một initializer chỉ định của siêu lớp" và nếu tôi vượt qua các tham số nib và bó thì lỗi là "initializer init Required (coder) ".
Ngay cả khi tôi thêm init (coder) và init (bộ giải mã) nó không hoạt động.
lỗi là gì? –
bạn phải thử init bắt buộc. Tôi đã thêm câu trả lời @ankit –
Chính xác thì bạn muốn thêm gì vào 'init()' của mình? Nếu nó chỉ là cử chỉ chạm, bạn có thể làm điều đó trong 'viewDidLoad()', hoặc thậm chí làm cho nó trở thành một biến thể lười biếng. – Eendje