Как перейти от клетки в XIB к VC в раскадровке - PullRequest
0 голосов
/ 03 июля 2018

Я создаю приложение с тремя табличными представлениями (каждое в отдельном VC). Я добавил все в main.storyboard, но мне нужно сделать одну ячейку настраиваемой в файле XIB с тремя метками. Поэтому мой вопрос заключается в том, как добавить последовательность из ячейки в файле XIB в ViewController в раскадровке.

Я видел, что вот ответ, но я не понимаю этого: Переход от раскадровки к XIB

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Если вам известна позиция вашего customCell, то вы можете легко достичь этого программно, вызвав делегат tableView следующими способами: Предположим, ваша пользовательская ячейка находится в последнем индексе:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    guard indexPath.row == models.count - 1 else {
        //behavior of other cell
        return
    }
    navigateToTestViewController()
}

Но если у вас есть кнопка в customCell, то вы должны использовать делегат или реактивный подход для отправки делегата в parentController для выполнения навигации.

Обновление : Если вам нужно только сделать ячейку типа customCell навигационной, то вы можете сделать это следующим образом:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath)
    guard cell is CustomCellTableViewCell else { return }
    navigateToTestViewController()
}
0 голосов
/ 04 июля 2018

Ранее на этот вопрос ответили довольно хорошо:

https://stackoverflow.com/a/44675813/4686915

вот мясо этого:

let myViewController = MyViewController(nibName: "MyViewController", bundle: nil)
self.present(myViewController, animated: true, completion: nil)

или нажмите навигационный контроллер

self.navigationController?.pushViewController(MyViewController(nibName: "MyViewController", bundle: nil), animated: true)

Единственная реальная разница в том, что вы должны убедиться, что вы делаете self... звонки внутри вашего UIViewController.

...