2014-08-28 7 views
5

काम करने से स्वाइप-टू-गो-बैक को रोकता है मैंने कुछ अजीब देखा और शायद यूआईएनविगेशन नियंत्रक में एक बग हो सकता है। जब आप -navigationController:animationControllerForOperation:fromViewController:toViewController:UINavigationController कस्टम एनीमेशन

और शून्य (डिफ़ॉल्ट एनीमेशन व्यवहार के लिए) को वापस ओवरराइड करते हैं, तो ड्रैग-टू-गो-बैक इशारा अब काम नहीं करता है। इस विधि के लिए प्रलेखन कहता है कि यदि आप मानक नेविगेशन नियंत्रक संक्रमण का उपयोग करना चाहते हैं तो आपको "शून्य" वापस करना चाहिए। इसका मेरा अर्थ यह है कि वापस लौटने से डिफ़ॉल्ट व्यवहार को होने से नहीं रोका जाना चाहिए।

मुझे यह भी पता चला कि अगर नेविगेशन नियंत्रकों के इंटरैक्टिवपॉपजेस्टर रिकॉग्नाइज़र। gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: के लिए वाईएस लौटाता है तो पॉप इशारा फिर से काम करता है। हालांकि, यह कामकाज जोखिम भरा है क्योंकि हम स्थापित डिफ़ॉल्ट प्रतिनिधि पर stomping कर रहे हैं, जो एक _UINavigationInteractiveTransition है।

क्या कोई तरीका है कि मैं डिफ़ॉल्ट ड्रैग-टू-गो-बैक जेस्चर को बनाए रखते हुए एनीमेशन नियंत्रक विधि को ओवरराइड कर सकता हूं?

यह question संबंधित है।

+0

[आईओएस 7 का उपयोग केवल कुछ समय के कस्टम इंटरैक्टिव संक्रमणों का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/20113701/ios-7-use-custom-interactive-transitions-only-ome-of- समय) – jszumski

उत्तर

1

आप UINavigationController subclassed गया है, सबसे सरल गया समाधान (आईओएस 9.3, स्विफ्ट 2.2) इस प्रकार है:

override func viewDidLoad() { 
    super.viewDidLoad() 
    interactivePopGestureRecognizer?.delegate = nil 
} 

वैकल्पिक रूप से, UIViewController के किसी भी अन्य उदाहरण में:

override func viewDidLoad() { 
    super.viewDidLoad() 
    navigationController?.interactivePopGestureRecognizer?.delegate = nil 
} 

प्रतिनिधि विधि को कार्यान्वित करना navigationController(_:animationControllerFor:from:to:) नेविगेशन नियंत्रक के इंटरैक्टिव पॉप इशारा पहचानकर्ता को अक्षम करता है, लेकिन इशारा करने के लिए इशारा के प्रतिनिधि को सेट करने में सक्षम बनाता है।

यदि आप केवल विशेष परिस्थितियों में इशारा सक्षम होना चाहते हैं, तो this answer देखें।

संबंधित मुद्दे