2016-10-25 17 views
0

Ich habe eine seltsame Reaktion in einem meiner Sicht, wenn swipe zurück. Es ging nicht auf meine vorherige Seite zurück, aber auf anderen Seiten ist dieses Problem nicht aufgetreten. Außerdem führt es den vorherigen SeitenansichtWillAppear-Code nach dem Swipe.Probleme mit der Wischgeste haben

Ich habe keine benutzerdefinierten Schaltflächen für die Ansichten festgelegt, aber es hat unterschiedliche Auswirkungen.

--Edit--

In meinem vorherigen Seite, die die Auswirkungen auf Seite erkläre ich nur viewDidLoad Funktion

ViewControllerA *view = [[ViewControllerA alloc] initWithNibName:@"ViewControllerA" bundle:nil]; 
[self.navigationController pushViewController:view animated:YES]; 

In meiner beeinflussen Seite aufrufen.

Alle meine Navigation für andere Klassen verwendet die oben genannten Aufruf.

Wenn Sie auf die Zurück-Aktion in der Navigationsleiste klicken, wird normalerweise zur vorherigen Seite zurückgekehrt.

--edit 2--

Meine aktuelle Setup ist ViewA> ViewB> ViewC wo ViewC ist, wo ist der Fehler passiert.

Bei ViewB, wenn ich an der Kante wischen, kann es zurück zu ViewA gehen. Bei ViewC, wenn ich an der Kante wische, wird ViewWillAppear in ViewB aufgerufen, aber ViewB wird nicht angezeigt.

Versuchte setzen @kaushal

if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { 
    self.navigationController.interactivePopGestureRecognizer.enabled = YES; 
    self.navigationController.interactivePopGestureRecognizer.delegate; //check UIGestureRecognizerDelegate delegate set properly. 
} 

sowohl ViewB und ViewC beantworten, aber es auslösen nicht.

--edit 3--

testete ich meine anderen Funktionen fließen und es scheint, dass einige das gleiche Problem haben, auf den dritten Blick Eingabe und einige ist auf der vierten Ansicht.

+0

Können Sie Ihren Code für andere freigeben? – Prav

+0

können Sie weitere Informationen eingeben? – Joshua

Antwort

0

In ViewDidAppear: Verwenden Sie diesen Code:

if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { 
    self.navigationController.interactivePopGestureRecognizer.enabled = YES; 
    self.navigationController.interactivePopGestureRecognizer.delegate; //check UIGestureRecognizerDelegate delegate set properly. 
} 

Und UIGestureRecognizerDelegate überprüfen ist nicht gleich Null.

+0

Der Code innerhalb wurde nicht ausgelöst. Ich habe es auch getestet, indem ich es in meine Anruferklasse gelegt habe. Es hat auch nicht ausgelöst. –

+0

Können Sie pls überprüfen mit geänderten Bedingung in Kommentar wenn ([self.navigationController reagiertToSelector: @selector (interactivePopGestureRecognizer)]) {}. Es gibt keine andere Möglichkeit, da dies eine Standard-Gestensteuerung von Apple für VC ist, die den Swipe zum Navigieren auf der Navigations-VC behandelt. – kaushal

+0

Getestet mit dem geänderten Zustand. Diesmal hat es die Inside-If-Anweisung ausgeführt, aber es geht immer noch nicht mit dem Swipe-Pop. –