एक और मामला है जो यह त्रुटि संदेश प्रकट हो सकता है। मैं घंटों तक खोज रहा था जब तक मुझे समस्या नहीं मिली। एक दो बार पढ़ने के बाद यह धागा बहुत मददगार साबित हुआ।
यदि आपका मुख्य दृश्य नियंत्रक लैंडस्केप ओरिएंटेशन के लिए घुमाया जाता है और आप एक कस्टम सब व्यू कंट्रोलर लगाते हैं, जो पोर्ट्रेट ओरिएंटेशन में प्रदर्शित होना चाहिए, तो यह त्रुटि संदेश तब हो सकता है जब आपका कोड इस तरह दिखता है:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationPortrait;
}
यहाँ जाल xcode का सुझाव था "UIInterfaceOrientationPortrait" और मैंने इसकी परवाह नहीं की। पहली नज़र में यह सही लग रहा था।
सही मास्क नाम दिया गया है
UIInterfaceOrientationMaskPortrait
छोटे इन्फिक्स "मास्क" से अवगत रहें , अन्यथा आपका सबव्यू एक अपवाद और ऊपर उल्लिखित त्रुटि संदेश के साथ समाप्त हो जाएगा।
नई एनमों को थोड़ा शिफ्ट किया गया है। पुराने एनम अमान्य मान लौटाते हैं!
(UIApplication.h में आप नई घोषणा देख सकते हैं: UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait) )
समाधान है:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
// ATTENTION! Only return orientation MASK values
// return UIInterfaceOrientationPortrait;
return UIInterfaceOrientationMaskPortrait;
}
तेजी से उपयोग में
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}