Передача данных с использованием делегатов из Xib в VC - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь передать данные на два уровня из XIB в VC, чтобы я мог перейти к отдельному представлению.Я получаю данные в разделе IGListKit, но по какой-то причине функция passDataFromSectionUp не запускает функцию print("like") в VC.

VC

class MainViewController: UIViewController, PassSectionDelegate {

func passDataFromSectionUp(sectionController: ExperiencesSectionController) {
    print("Like"); //Doesn't trigger
}

Раздел IGListKit

protocol PassSectionDelegate: class {
  func passDataFromSectionUp(sectionController: ExperiencesSectionController);
}

class ExperiencesSectionController: ListSectionController, UpdateDataDelegate {

weak var delegate: PassSectionDelegate? = nil;

func passUpdateData(data: String) {
    print(data) //Data gets received
    delegate?.passDataFromSectionUp(sectionController: self);
}

...

if let cell = cell as? CarouselControlCell {
        cell.delegate = self;
    }

xib

protocol UpdateDataDelegate: class {
  func passUpdateData(data: String);
}

class CarouselControlCell: UICollectionViewCell {

weak var delegate: UpdateDataDelegate? = nil

@IBAction func addUpdate(_ sender: Any) {
    delegate?.passUpdateData(data: "teeest");
}

1 Ответ

0 голосов
/ 22 сентября 2018

Переменная delegate: PassSectionDelegate в вашем классе ExperiencesSectionController имеет значение nil и никогда не обновлялась с учетом кода, которым вы поделились.При вызове delegate?.passDataFromSectionUp(sectionController: self) переменная delegate будет, таким образом, идентифицироваться как nil, и впоследствии ничего не будет выполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...