2016-04-04 5 views
0

Ich habe den View-Controller herausgezogen und er funktioniert einwandfrei, bis der View-Controller performSegue an einen anderen View-Controller sendet. Ich bekomme einen Fehler mit Bezug auf panGestureRecognizer, der im übergeordneten Ansichts-Controller zum Herausgleiten verwendet wird."Unerwartetes Ergebnis nil beim Entpacken eines optionalen Werts" bei Verwendung von panGestureRecognizer für die Ansicht "Slide Out"

fatal error: unexpectedly found nil while unwrapping an Optional value 

Hier ist der Code möglich verursacht Problem ist, ist dieser Code in dem Ziel-View-Controller:

sidebarButton.target = self.revealViewController() 
sidebarButton.action = #selector(SWRevealViewController.revealToggle(_:)) 
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 

Wenn ich dritte Zeile über einen Kommentar, segue zum Controller funktioniert Zielansicht aber die Seite Funktion von Ziel aus View Controller funktioniert nicht. Hoffe diese zusätzlichen Details hilft.

+0

zeigen Sie Ihre Gestenerkennung Funktion –

+0

@MuhammadZeeshan Ich habe jetzt einige Kontext hier hinzugefügt. –

Antwort

1

Angenommen, die Zeichenfolge ist ein gültiger Schlüssel.

Sie haben es mit Optionals zu tun, also entfernen Sie jedes Rückgabeobjekt bedingt, bevor Sie es verwenden.

Erzwungenes Auspacken ist gefährlich und sollte nur verwendet werden, wenn Sie absolut sicher sind, dass ein Optional einen Wert enthält.

+1

Wir leben in einem großen Alter, wo Compiler und Laufzeiten Ihnen genau sagen, was falsch ist, in einfachem Englisch (die meiste Zeit). Wir sollten dankbar sein und mehr zuhören! –

+0

@ a4arpan Ich habe jetzt hier zusätzlichen Kontext hinzugefügt –