2017-02-21 42 views
0

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

@IBAction func newGoalButtonTapped(_ sender: UIBarButtonItem) { 
    let newGoalView = AddGoalView(frame: self.view.frame) 
    newGoalView.delegate = self 
    self.view.addSubview(newGoalView) 
    newGoalView.present() 
} 

Вот как я загрузить файл острия в моем пользовательский метод вид инициализации

override init(frame: CGRect) { 
    super.init(frame:CGRect(x: frame.origin.x + 10, y: frame.height, width: frame.width - 20, height: frame.height/3)) 
     self.addSubview(self.instanceFromNib()) 
} 


private func instanceFromNib() -> AddGoalView { 
    return UINib(nibName: "AddGoalView", bundle: nil).instantiate(withOwner: self, options: nil)[0] as! AddGoalView 
} 

и это, как я объявляю свой протокол

protocol NewGoalCreatedDelegate { 
     func newGoalCreated(with proteinGoal:Int16, isCurrent:Bool)} 

Я установил владельца файла моего файла nib в свой пользовательский класс «AddGoalView», а также пользовательский класс представления в «AddGoalView». Я тоже пробовал один или другой, но не повезло.

Делегат не является ничем до моего нынешнего метода.

internal func present() { 
    UIView.animate(withDuration: 0.3, animations: { 
     self.center = self.superview!.center 
    }, completion: {(finished:Bool) in 
     print(self.delegate!) 
    }) 
    print(self.delegate!) 
} 

После этого делегат ноль, я знаю, что это что-то связано с тем, как Im с помощью моего острия файл, но я не знаю, что это такое.

+0

Я думаю, вы запутались в * Swing * vs * Swift * (уже исправлено) – Frakcool

+1

@Frakcool спасибо! –

+0

Правильно ли ваш контроллер просмотра соответствует делегату? то есть 'class ViewController: UIViewController, NewGoalCreatedDelegate {}'? – Pierce

ответ

0

Я забыл связать выходы в владельце файла, мнение моего xib.file enter image description here

.