عند إنشاء custom navigation controller في Swift، يجب عليك تنفيذ جميع المُعيَّنات المطلوبة للفئة الأساسية UINavigationController
. في حالتك، يجب عليك تنفيذ المعيَّنة init(nibName:bundle:)
بالإضافة إلى المعيَّنتين التي قمت بتنفيذهما بالفعل.
يمكنك تنفيذ المعيَّنة المطلوبة بالشكل التالي:
swiftpublic class CustomNavigationController: UINavigationController {
// MARK: - Life Cycle
override init(rootViewController: UIViewController) {
super.init(rootViewController: rootViewController)
delegate = self
}
// Implement required initializer
public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
delegate = self
}
}
بعد تنفيذ هذه المعيَّنة، يجب أن تعمل custom navigation controller بدون مشاكل.
المزيد من المعلومات
عند إنشاء custom navigation controller في iOS، يجب تنفيذ المعيَّنات المطلوبة من الفئة الأساسية UINavigationController
. الفئة UINavigationController
تحتوي على معيَّنة init(nibName:bundle:)
التي يجب تنفيذها في custom navigation controller حتى يمكن استخدامها بشكل صحيح.
عادةً، يكون تنفيذ المعيَّنة init(nibName:bundle:)
بسيطًا، ويمكن أن يتمثل في استدعاء المعيَّنة المقابلة في الفئة الأساسية مع تمرير القيم المناسبة. في الكود الذي قمت بتقديمه، تم تنفيذ المعيَّنة init(coder:)
ولكن لم يتم تنفيذ المعيَّنة init(nibName:bundle:)
، مما أدى إلى ظهور الخطأ.
بعد تنفيذ المعيَّنة المطلوبة، يمكنك اختبار custom navigation controller الخاص بك ويجب أن يعمل بشكل صحيح دون ظهور الخطأ.