/ / Prześlij dane z CollectionViewCell do NavigationItem.title na 2nd ViewController - swift, collectionview

Prześlij dane z CollectionViewCell do NavigationItem.title na 2nd ViewController - swift, collectionview

Zaktualizuj, zobacz mój komentarz poniżej, jako co zrobiłem źle. Myślę, że ktoś może skorzystać na wszystkich tych błędach dla początkujących :): Mam kolekcjęView z tytułami sekcji i tytułami komórek (UILabels), która jest dynamicznie zasilana przez chmurę. Udało mi się uzyskać kod, aby w końcu zadziałać, aby wybrać komórkę, a następnie wysłać tytuł komórki do właściwości 2nd navigationContextler's ViewInter.title.

Jednak teraz drugi ViewController przeładowujepo pojawieniu się za pierwszym razem. Wbudowałem pierwszy CollectViewController w kontroler nawigacyjny. I stworzyłem push-scenę w storyboardzie z mojej prototypowej komórki w CollectionView do 2nd ViewController i dostarczyłem identyfikator dla segue. Czy jest jakiś pomysł, dlaczego ponownie ładuje 2nd ViewController po pojawieniu się po raz pierwszy?

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
}

Odpowiedzi:

0 dla odpowiedzi № 1

Ustaw self.navigationItem.title = ... w didSelect... metoda, a następnie zresetuj go do starego tytułu w viewWillAppear metoda twojego pierwszego VC. Pozwoli to uniknąć konieczności tworzenia zmiennej globalnej w pierwszym VC lub konieczności przekazania tytułu jako właściwości do drugiego VC, chociaż oba rozwiązania powinny również działać.