Как мне использовать performSegue для перехода к другому UIViewController? - PullRequest
0 голосов
/ 27 мая 2020

Я попытался подключить свой ViewController к CollectionViewController с переходом между ними. Я управляю + щелкаю от ViewController к контроллеру CollectionView и выбираю сегмент «показать детали», а затем создал кнопку с этим кодом:

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    print("ViewController loaded")
}

@IBAction func EditCharacterSetPressed(_ sender: UIButton) {
    self.performSegue(withIdentifier: "CollectionViewSegue", sender: self)
}

Когда я нажимаю кнопку в симуляторе, он дает мне это сообщение об ошибке:

unrecognized selector sent to instance

Как мне это исправить? Это как-то связано с другими предупреждениями о моем CollectionView?:

prototype collection view cells must have reuse identifiers

У меня есть идентификатор, так что проблема не в этом:

Storyboard segue - Identifier: CollectionViewSegue

1 Ответ

0 голосов
/ 27 мая 2020

РЕДАКТИРОВАТЬ: Проблема заключалась в том, что у него был несуществующий IBAction, подключенный к его кнопке.

Похоже, что у вашего segue нет идентификатора в вашей раскадровке. В зависимости от вашего кода это должно быть

CollectionViewSegue

segue-name

Что касается ячеек представления вашей коллекции. Если я правильно помню (действительно, c пару лет назад) xcode создает экземпляры новой ячейки и не использует повторно какие-либо из существующих, потому что у вас не определены ячейки прототипа.

Вы можете (и должны) создать ячейку (либо в раскадровке, либо просто в коде), установить идентификатор для этой ячейки и повторно использовать его в контроллерах представления таблицы (или, в данном случае, в представлении коллекции) .

Думаю, вы только начинаете разработку, поэтому я бы посоветовал go пройти пару руководств (например, http://www.thomashanning.com/uitableview-tutorial-for-beginners/)

...