Swift Cast от 'UIViewController?' к несвязанному типу TableViewCell всегда происходит сбой - PullRequest
0 голосов
/ 25 марта 2019

Я реализовал secondtableview в firsttableview -> firsttableviewcell.

Я хочу получить доступ к функции firsttableviewcell в secondtableviewcell.

Я реализовал функцию, которая обращается к parentView (firsttableviewcell), и возникает ошибка.

В UiView:

var parentViewController: UIViewController? 
{
    var parentResponder: UIResponder? = self
    while parentResponder != nil {
        parentResponder = parentResponder!.next
        if let viewController = parentResponder as? UIViewController {
            return viewController
        }
    }
    return nil
}

В secondtableviewcell:

if let myViewController = self.parentViewController as? firsttableviewcell
{
    myViewController.getNextPage()
}

В firsttableviewcell:

class firsttableviewcell: UITableViewCell, UITableViewDelegate, UITableViewDataSource {
    ...
}

И у меня была ошибка в secondtableviewcell.

В ролях из 'UIViewController?' на несвязанный тип 'FirstTableViewCell' всегда происходит сбой

Как получить представление Cell при импорте родительского представления?

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Вы можете получить доступ к firsttableviewcell из secondtableviewcell , выполнив итерацию всех супер-представлений secondtableviewcell и проверив класс этого суперпредставления, вы можете получить его из нижеприведенногокод.

func getFirstTableViewCell() -> UITableViewCell? {
        var view = self.superview
        while (view != nil && view!.isKind(of: UITableViewCell.self) == false) {
            view = view!.superview
        }
        return view as? UITableViewCell
}

код в secondtableviewcell :

Примечание. Я добавил действие кнопки, и при нажатии на него появится первая ячейка viewview

@IBAction func buttonPressed(_ sender: Any) {
        getSuperCell()
}
0 голосов
/ 25 марта 2019

То, что вы пытаетесь сделать, кажется неясным, но вы разворачиваете self.parentViewController, тогда вы разыгрываете его as? firsttableviewcell a UIViewController не может быть разыграно как UITableViewCell.

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