मैं वेब पर खोज रहा हूं और घंटों के लिए स्टैक ओवरफ़्लो खोज रहा हूं और मैं इस समस्या को हल नहीं कर सकता। यहां आशा है कि आप सभी मेरी गलती देखेंगे, क्योंकि मुझे बस यह नहीं मिल रहा है।मैन्युअल मोडल सेग्यू काम नहीं करता है, देखें नियंत्रक विंडो पदानुक्रम में नहीं है?
मेरे पास एक साधारण स्टोरीबोर्ड-आधारित एप्लिकेशन है जिसे मैंने अभी शुरू किया है। प्रारंभिक व्यू कंट्रोलर टेम्पलेट से दो डमी व्यू कंट्रोलर के साथ UITabBarController का एक उदाहरण है। स्टार्ट अप करने पर मुझे यह जांचने की ज़रूरत है कि डिवाइस बाहरी सेवा में लॉग इन है या नहीं। यदि नहीं, तो मैं एक मोडल व्यू कंट्रोलर दिखाऊंगा जो उपयोगकर्ता को प्रमाणीकृत करने की अनुमति देगा, अगर डिवाइस प्रमाणीकृत है तो मैं केवल प्रथम दृश्य नियंत्रक दिखाऊंगा।
- स्टोरीबोर्ड
- पर AuthenticateViewController दृश्य बनाएं AuthenticateViewController के लिए कोड फ़ाइलें बनाएं, और उन्हें इसी दृश्य को असाइन
- बनाएँ:
निम्नलिखित कदम सब कुछ मैं परियोजना बनाने के बाद से किया है UITabBarController subclass के लिए कोड फ़ाइलें, और प्रारंभिक UITabBarController दृश्य को उस नए सबक्लास
- से कनेक्ट करें UITabBarController दृश्य से स्टोरीबोर्ड पर एक नया सीगू Authenti में जोड़ें cateViewController दृश्य
- मैन्युअल UITabBarController उपवर्ग में
viewDidLoad
से segue फोन
जब मैं आवेदन मोडल segue आग नहीं करता है चलाने के लिए, UITabBarController के पहले ViewController दिखाया गया है, और मैं XCode में निम्नलिखित आउटपुट प्राप्त :
Warning: Attempt to present <AuthenticateViewController: 0x83c0c10> on <EPTabBarController: 0x83be600> whose view is not in the window hierarchy!
वास्तव में नीचे दिया गया कोड, वास्तव में केवल एक ही कोड जिसे मैंने अभी तक जोड़ा है। यदि स्क्रीनशॉट या अतिरिक्त जानकारी उपयोगी होगी तो कृपया मुझे बताएं। आपकी सहायता के लिये पहले से ही धन्यवाद।
EPTabBarController, UITabBarController के उपवर्ग:
#import "EPTabBarController.h"
#import "AuthenticateViewController.h"
@interface EPTabBarController()
@end
@implementation EPTabBarController
- (void)viewDidLoad
{
[super viewDidLoad];
[self performSegueWithIdentifier:@"authenticationSegue" sender:self];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
यह काम करता है, लेकिन मुझे एक अजीब समाधान के रूप में मारता है। क्या यह पूरा करने का यही एकमात्र तरीका है? क्या 'performSegueWithIdentifer:' कॉल कहीं और रखा जाना चाहिए? – blundin
हे @ ब्लंडिन कृपया बाद में सेट करने का प्रयास करें: 0.0 और जांचें। अगर मुझे चिकनी काम करता है तो मुझे बताएं –
हां, यह आसानी से काम करता है। धन्यवाद। – blundin