2016-11-04 3 views
0

Я создал .xib и добавил этот xib в другой вид. Я хочу добавить метод делегата в этот файл .xib. Вот мой код:быстрый делегат, показывающий нуль

.xib файл

import UIKit 

protocol CustomCheckBoxWithCrossDelegate { 

    func deleteCustomCheckbox(itemToDelete: String) 
} 

class CustomCheckBoxWithCross: UIView { 

    @IBOutlet weak var radioButton: UIButton! 
    @IBOutlet weak var checkboxLbl: UILabel! 
    @IBOutlet weak var checkboxCrossBtn: UIButton! 

    var blockIndexForTheCrossButton: Int = 0 
    var delegate: CustomCheckBoxWithCrossDelegate! 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     loadViewFromNib() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     loadViewFromNib() 
    } 


    func loadViewFromNib() { 
     let bundle = NSBundle(forClass: self.dynamicType) 
     let nib = UINib(nibName: "CustomCheckBoxWithCross", bundle: bundle) 
     let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView 
     view.frame = bounds 
     view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 
     self.addSubview(view); 
    } 


    @IBAction func crossBtnTapped(sender: AnyObject) { 
     print("Delegate --> \(delegate)") 
     delegate!.deleteCustomCheckbox("hello") 
    } 
} 
  • Но метод "crossBtnTapped" Я получаю значение ноль для этого делегата.

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

+0

где же вы реализуете CustomCheckBoxWithCrossDelegate? – Sahil

+0

В другом представлении, где я добавляю этот .xib-файл. –

+0

Вы можете показать другой код вида? – Sahil

ответ

0

У вас должен быть экземпляр CustomCheckBoxWithCross в вашем другом классе, где вы реализовали протокол. Задайте свойство делегата экземпляра CustomCheckBoxWithCross для себя в этом файле.

+1

Спасибо. Я не задал свойство delegate на другом представлении. Задача решена. –

+1

принять ответ, затем @SamuelPatterson: P – Sahil

0

Я несколько раз сталкивался с этой ошибкой, добавляю, если делегат не является нулевым состоянием.

@IBAction функ crossBtnTapped (отправитель: AnyObject) {

if delegate != { 
    delegate!.deleteCustomCheckbox("hello") 
    } 
} 
Смежные вопросы