Hier Aufruf ist der Code mit dem Delegierten Prozess ... vorgeschlageneine Funktion in einem View-Controller von einem anderen View-Controller
in Hauptansicht Controller ...
protocol FilterDelegate: class {
func onRedFilter()
func onGreenFilter()
func onBlueFilter()
func onUnfiltered()
}
class ViewController: UIViewController, FilterDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
----
// Increase red color level on image by one.
func onRedFilter() {
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "filterSegue" {
let dest = segue.destinationViewController as! CollectionViewController
dest.filterDelegate = self
}
}
in Controller Sammlung Ansicht ..
.var filterDelegate: FilterDelegate?
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("Cell \(indexPath.row) selected")
guard let filterDelegate = filterDelegate else {
print("Filter delegate wasn't set!")
return
}
switch indexPath.row {
case 0:
filterDelegate.onRedFilter()
case 1:
filterDelegate.onGreenFilter()
case 2:
filterDelegate.onBlueFilter()
case 3:
filterDelegate.onUnfiltered()
default:
print("No available filter.")
}
Gerade jetzt ... stoppt der Code am Schutzblock und gibt die Fehlermeldung aus. Der Schalterblock wird bei einem Drücken einer Zelle nicht ausgeführt.
Ich habe dies versucht und nicht nur die Zellen nicht die Filter aufrufen (nicht einmal die eingebetteten print-Anweisungen, die die indexPath.row, die funktionierte), aber jetzt das horizontale Scrollen der Collectionviewcontroller ist gebrochen. Irgendwelche Ideen? –
Es hört sich an, als ob etwas mit dem Child-View-Controller durcheinander gelaufen ist und die UICollectionViewDataSource-Methoden nicht funktionieren. Ohne den Code zu sehen, ist es schwer zu sagen, was vor sich geht. Ich denke, ich würde sicherstellen, dass UICollectionViewController (nicht UIViewController) immer noch unterklassifiziert wird, und stelle sicher, dass die Datenquelle immer noch korrekt im Storyboard eingebunden ist. –
Nun, ich habe es geschafft, es zurück zu bekommen, so dass die scrollende Sammlungsansicht funktioniert. Kannst du mir erklären, was der Block mit der Wache macht und ob etwas fehlt? Momentan ist das Drucken des "Filterdelegaten nicht eingestellt!" Anweisung für jede Zelle drücken auf dem Scroll-Menü und zurück, nie zur switch-Anweisung zu bekommen. –