在swift中的自定义委托方法中的IBOutlet引用中的问题

时间:2016-11-24 06:09:23

标签: swift xcode delegates iboutlet

有一个控制器,我们正在使用分段控制器。还有一个右侧导航栏按钮,现在我们想在点击控制器上显示一个popupView。

所以我为该按钮操作创建了一个自定义委托。

单击该按钮后,自定义委托方法将触发,并且工作正常。

现在,如果我想在该委托动作中访问弹出视图的IBOutlet,那么它会显示" Nil"

主控制器包含分段控制器,容器视图和右侧导航栏按钮:

// this is a protocol for button click
@objc protocol ClassList {
    func classData(id:NSArray,className:NSArray)
}
// this is button action method of right navigation bar button
@IBAction func classFilter(sender: AnyObject) {
        //dispatch_async(dispatch_get_main_queue()) {
        self.delegate?.classData(self.classID as NSArray, className: self.dataPicker as NSArray)
    //}
}

分段控制器:

func classData(id: NSArray, className: NSArray) {
// method fire correctly
        self.pickerView.hidden = false // crash app because pickerView reference nil
    }

0 个答案:

没有答案