2015-05-28 10 views
12

बदलते मैं इन ViewControllers स्टोरीबोर्ड में जोड़ा है:अजीब एनिमेशन जब NavigationItem शीघ्र

enter image description here

कोई भी एक कस्टम वर्ग के साथ जुड़ा हुआ है, सब कुछ शुद्ध स्टोरीबोर्ड से है।

Video on iPhone simulator on iOS7

यह केवल तब होता है जब iOS7 पर autolayout का उपयोग कर।

किसी और ने इसे देखा?

Download sample project of problem

+0

क्या आप उस तरीके का जिक्र कर रहे हैं जिसमें शीर्षक नियंत्रक के बीच से आता है? – Woodstock

+0

अधिकांशतः लेबल "डब्ल्यूटीएफ" के साथ लेबल? यह अजीब लगता है – Arbitur

+0

यदि आप मेरी छवि को देखते हैं तो आप देख सकते हैं कि मैंने स्टोरीबोर्ड का उपयोग करके लेबल जोड़ा है और यह ऑटोलाउटआउट का उपयोग कर रहा है। और वीडियो में आप अजीब संक्रमण एनीमेशन देख सकते हैं जिसे मैंने नहीं जोड़ा, यह सिर्फ एक साधारण शो एक्शन है। – Arbitur

उत्तर

3

संपादित करें 2:

कोई टिप्पणी में mentionned रूप में, मैं अपने नमूना परियोजना के साथ समस्या पुन: पेश करने में असमर्थ हूँ। हालांकि, मैंने देखा एक बात यह है कि आपकी परियोजना को तैनाती लक्ष्य के साथ कॉन्फ़िगर किया गया है जो आईओएस 8.3 है। इसे ठीक करने के लिए यहां दिए गए कदम हैं:

चरण 1: एक्सकोड के प्रोजेक्ट नेविगेटर में अपनी प्रोजेक्ट का चयन करें। चरण 2: सुनिश्चित करें कि आप परियोजना संपादक के बाएँ कॉलम में अपनी परियोजना का चयन करें न कि लक्ष्य चरण 3: सेटिंग बिल्ड टैब का चयन करें चरण 4: संशोधित आईओएस तैनाती लक्ष्यलिए आईओएस 7.1 या आईओएस 7.0 किस ओएस के साथ आप परीक्षण कर रहे हैं इस पर निर्भर करता है। चरण 5: बनाएं और चलाएं।

उम्मीद है कि यह आपकी मदद करेगा।

संपादित करें:

चरण 1। लेबल 14 के साथ अपने UIViewController का चयन करें और एक्सकोड के दाएं फलक के तीसरे टैब में, vc14 जैसे स्टोरीबोर्ड आईडी दर्ज करें।

चरण 2। लेबल 12 के साथ अपने UIViewController का चयन करें और उसी टैब में, ViewController जैसे कस्टम क्लास दर्ज करें।

चरण 3। अपने बटन से ट्रिगर सेग्यू एक्शन निकालें और इसे @IBActionViewController

चरण 4 में बदलें। ViewController में अपने @IBAction लिए इस कोड को जोड़ें:

@IBAction func push(sender: AnyObject) { 
    var vc14 = self.storyboard?.instantiateViewControllerWithIdentifier("vc14") as! UIViewController 
    vc14.view.layoutIfNeeded() 
    self.navigationController?.pushViewController(vc14, animated: true) 
} 

स्पष्टीकरण:

अजीब एनीमेशन क्योंकि लेआउट कभी नहीं हुआ पहले segue UINavigationController में UIViewController धक्का हो रहा है। आईओएस 7 ने एनीमेशन ब्लॉक में प्रवेश करने से पहले layoutIfNeeded मैन्युअल रूप से कॉल करके और अंततः लेआउट होने पर, इस तरह के परिदृश्य के खिलाफ उचित रूप से सुरक्षा नहीं की, यह निहित एनिमेशन को ट्रिगर करता है। कोड नमूने में मैंने आपको दिया है, इस समस्या से बचने के लिए ViewController को स्टैक पर धक्का देने से पहले मैं मैन्युअल रूप से लेआउट ट्रिगर करता हूं।

+0

सबसे पहले, ब्लॉक के भीतर प्रॉम्प्ट को उसी तरह से बदलने का प्रयास करें जैसा आपने किया था। – Dalzhim

+0

काम नहीं किया। :( – Arbitur

+0

मुझे वास्तव में कोई जानकारी नहीं है कि एफ सेब ने इसे कैसे कोड किया है लेकिन यह बहुत बुरी तरह लिखा गया है ... – Arbitur

0

मुझे लगता है कि आप प्रेस ⌘T दबाते हैं। तो धीमी एनीमेशन शुरू हो गया है। आपके द्वारा उपयोग किए जाने वाले सभी सिम्युलेटर की जांच करें।

Debug-> धीरे एनीमेशन

मैं छवि यह जाँच देते हैं। See Image

+0

जो मैंने लिंक किया है उसमें मैंने जो किया है, उससे संबंधित है। – Arbitur

4

मुझे लगता है कि यह समस्या तब होती है जब दृश्य ऑटोलायआउट प्राप्त हो रहा है और इसे मुख्य स्क्रीन आकार में आकार सेट कर रहा है। आईओएस 7 नेविगेशन पुश एनीमेशन में दृश्य आकार सेट होने से पहले आते हैं ताकि हम एनिमेटिंग देख सकें। चिंता न करें यह ios8.0 और बाद में अच्छी तरह से काम करता है। आईओएस 7.0 के लिए आप दृश्य में दृश्य का आकार दे सकते हैं। यह लोड होने से पहले आकार समायोजित कर सकता है।

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