Обновление, см. Мой комментарий ниже, как то, что я сделал неправильно. Мысль о том, что кто-то может извлечь выгоду из всех этих ошибок новичка :): У меня есть коллекцияView с заголовками разделов и названиями ячеек (UILabels), которые динамически подаются через cloudkit. Я смог заставить код, наконец, работать, чтобы выбрать ячейку, а затем отправить название ячейки во 2-ое свойство navigationItem.title ViewController.Передача данных из CollectionViewCell в NavigationItem.title на 2nd ViewController
Однако теперь второй ViewController перезагружается после его появления в первый раз. Я встроил первый CollectionViewController в контроллер навигации. И я создал push-сегу в раскадровке из моей ячейки прототипа в CollectionView для второго ViewController и предоставил идентификатор для segue. Любая идея, почему она перезагружает второй ViewController снова после появления в первый раз?
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("selected", sender: indexPath)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "selected" {
let indexPaths : NSArray = self.collectionView!.indexPathsForSelectedItems()
let indexPath : NSIndexPath = indexPaths[0] as NSIndexPath
let theSelectedItem = sections[indexPath.section].category[indexPath.item]
let svc = segue.destinationViewController as TableViewControllerNew
svc.navigationItem.title = theSelectedItem
// I created the tableview controller in the storyboard, and then subclassed the UITableViewController, and set the storyboard tableview controller's class to the subclass in the identity inspector
}
Nevermind! Я понял, проблема .... новичок ошибка! Я не понимал, что если у вас есть сегу в раскадровке, вам не нужно также вызывать «performSegueWithIdentifier». Надеюсь, этот пост может помочь кому-то другому. Кроме того, найден альтернативный вариант кода в методе prepareForSegue, который короче. Вместо двух линий для indexPaths и indexPath выше, замените эту строку: 'пусть indexPath:! NSIndexPath = self.collectionView .indexPathForCell (отправитель, как CollectionViewCell)' –