2013-08-25 11 views
28

subviews मैं एप्पल से स्टोरीबोर्ड के साथ iAd सूट का उपयोग कर रहा है, इस लिंक के अनुसार ... Apple iAd Storyboard documentationautolayout और

यह सब ठीक काम करता है जब तक मैं बारी autolayout पर। यह ठीक बनाता है लेकिन चलने पर दुर्घटनाग्रस्त हो जाता है। उत्पादन मैं मिलता है:

2013-08-24 12: 06: 36.138 TabbedBanner [7272: C07] * में अभिकथन विफलता - [UIView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2380.17/UIView.m : 5781 2013-08-24 12: 06: 36.139 टैब्डबैनर [7272: c07] * बिना अपवाद अपवाद के कारण ऐप को समाप्त करना 'एनएसआईएननल इन्फॉन्सिस्टेंसी एक्सेप्शन', कारण: 'ऑटो लेआउट को अभी भी देखने के बाद आवश्यक है-viewDayLoutout दृश्य नियंत्रक के लिए दृश्य। बैनर व्यू कंट्रोलर के कार्यान्वयन को ऑटो लेआउट का आह्वान करने के लिए दृश्य-दृश्यों को देखने की आवश्यकता है। ' *** सबसे पहले फेंक कॉल स्टैक: (0x1e27012 0x110ee7e 0x1e26e78 0xba4665 0xa347a 0x11226b0 0x1358fc0 0x134d33c 0x1358eaf 0x1422bd 0x8ab56 0x8966f 0x89589 0x887e4 0x883ef 0x65c9d 0x5098b 0x5194b 0x62cb5 0x63beb 0x55698 0x1700df9 0x1700ad0 0x1d9cbf5 0x1d9c962 0x1dcdbb6 0x1dccf44 0x1dcce1b 0x5117a 0x52ffc 0x2a0d 0x2935) libC++ अबी। डाइलिब: एक अपवाद फेंकने को समाप्त किया जाता है (एलएलडीबी)

मुझे पता है कि स्टोरीबोर्ड में सबव्यूज़ के साथ कुछ करना है, लेकिन मुझे नहीं पता कि इस त्रुटि को कैसे ठीक किया जाए। मैं आईओएस के लिए काफी नया हूं और खुद को सिखाने की कोशिश कर रहा हूं ताकि किसी भी मदद की सराहना की जा सके। कई धन्यवाद

उत्तर

88

जोड़ें:

[self.view layoutIfNeeded]; 
इस विधि का अंत करने के लिए

- (void)viewDidLayoutSubviews 

अपने BannerViewController

+15

का उपयोग कर 'पर विचार करें [self.view layoutIfNeeded]' बजाय 'layoutSubviews अंदर '(जो, दस्तावेज़ों के अनुसार, सीधे नहीं कहा जाना चाहिए)। यह अभी भी पुनः लेआउट की आवश्यकता की समस्या को हल करना चाहिए। – orip

+3

यदि आवश्यक हो तो लेआउट कॉल करने की आवश्यकता के पीछे क्या कारण है? क्या ऐसा इसलिए है क्योंकि जब तक viewDidLayoutSubviews को कॉल नहीं किया जाता है तब तक सबव्यूव्यू सेटअप नहीं होते हैं? – coolio

+4

यह आईओएस 8 और 7 के लिए डिज़ाइन ऐप के लिए एक्सकोड 6 का उपयोग करते समय केवल आईओएस 7 पर होता है, और viewDidLayoutSubviews को ओवरराइड करता है। मुझे पता है कि आईओएस 8 पर व्यू लाइफसाइक्ल के क्रम में कुछ चीजें बदली गई हैं लेकिन आईओएस 8 एसडीके या आईओएस 7 ऐप का उपयोग करते समय यह मेरे साथ हो रहा है ... आईओएस 7 पहले के अंत में लेआउट दृश्यों को ठीक से करने में सक्षम नहीं है "viewDidLayoutSubviews" कॉल करें और आपको ओवरराइड विधि – dulgan

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