जोड़ने के बाद मुझे लगता है कि मुझे कुछ मौलिक याद आ रही है और इसलिए मैं कुछ मदद के लिए समुदाय से पूछना चाहता हूं। मैं एक बुनियादी आईफोन उपयोगिता अनुप्रयोग के आधार पर एक ऐप का निर्माण कर रहा हूं। मेरा मेन व्यू और फ्लिपसाइड व्यू कुछ तत्व साझा करता है इसलिए मैंने उन टुकड़ों के लिए अलग व्यू कंट्रोलर और निब फाइलें बनाई हैं। ऐसा करने के लिए मैंने निम्न कार्य किया है: 1. SearchDateViewController नामक एक व्यू कंट्रोलर बनाया गया है जो फ़ाइल का स्वामी है SearchViewView.xib 2. SearchDateView.xib मूल रूप से UILiew के साथ UIView है, दृश्य सही ढंग से वायर्ड किया गया है 3. दोनों MainViewController.m और FlipsideViewController.m अंदर मैं folllows के रूप में एक subview जोड़ें:पर्यवेक्षण और पेरेंटव्यू कंट्रोलर शून्य सबव्यू
- (void)loadView{
[super loadView];
searchDateViewController = [[SearchDateViewController alloc] initWithNibName:@"SearchDateView" bundle:nil];
[[searchDateViewController view] setFrame:[searchDateView frame]];
[[self view] addSubview:[searchDateViewController view]];
...
}
सब कुछ प्रदर्शित करता है और बस ठीक काम करता है। मूल रूप से प्रत्येक मुख्य और फ्लिपसाइड विचारों में होने वाली कार्रवाइयों के आधार पर निब के UILabel को बदल दिया जाता है। हालांकि, अगर मैं SearchVateViewController को मेनव्यू या FlipsideView से लोड किया गया है, तो मैं कुछ अलग करना चाहता था। हालांकि, मुझे यह पता लगाना प्रतीत नहीं होता कि ViewController SearchDateViewController सबव्यू जोड़ रहा है।
searchDateViewController में मैंने कोशिश की:
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"superview %@", self.view.superview);
NSLog(@"parentviewcontroller %@", self.parentViewController);
}
दोनों ही मामलों मैं नहीं के बराबर मिलता है।
तो मेरा सवाल है - क्या मैं यह पता लगा सकता हूं कि कौन सा व्यू कंट्रोलर खोज जोड़ रहा हैडेटव्यू कंट्रोलर एक सबव्यूव? यदि हां, तो कैसे? या अगर मेरा तर्क यहां पूरी तरह से गड़बड़ हो गया है, तो मुझे यह कैसे करना चाहिए?
धन्यवाद!
सब्यूव्यू और UIViewController उपclasses के बारे में सही दिशा में मुझे इंगित करने के लिए ठीक है धन्यवाद। यदि मैं NSDbject का सर्चडेटव्यू कंट्रोलर एक सबक्लास बना देता हूं तो यह कैसे है कि मैं सबव्यू जोड़ रहा हूं और निब के साथ इनसाइट को कैसे प्रभावित कर रहा हूं? मुझे व्यू कंट्रोलर के बजाय nsobjects के रूप में सबव्यूज़ के कोई उदाहरण नहीं मिला है, लेकिन मैं इस मामले में जो मानक अभ्यास कर रहा हूं उसे अपनाना शुरू करना चाहता हूं। अगर आपके पास कोई और सुझाव है तो मुझे बताएं - धन्यवाद! इसके अलावा - आप दोनों ने पेरेंट कंट्रोलर का उपयोग करने का सुझाव दिया है, जो समझ में आता है, लेकिन पर्यवेक्षण किस भूमिका निभाता है? क्या यह यहां अधिक उपयुक्त होगा? – deadroxy
NSDbject के एक उप-वर्ग को SearchDateViewController बनाना आपकी समस्या को दूर नहीं करता है, यह केवल भविष्य की समस्याओं से बचाता है क्योंकि UIViewControllers वास्तव में उन दृश्यों के लिए उपयोग नहीं किया जाता है जो पूरी विंडो IMHO नहीं लेते हैं। अपनी समस्या का समाधान करने के लिए, आपका दृश्य अनुकूलन कोड self.parentViewController पर निर्भर नहीं होना चाहिए या देखें। सुपरव्यू बिल्कुल। इसके बजाय, SearchDateViewController (एक बूल या एनम हो सकता है) में एक संपत्ति को परिभाषित करें, फिर आप यह तय करने के लिए क्वेरी करते हैं कि दृश्य को कैसे अनुकूलित किया जाए। ऑब्जेक्ट जो SearchDateViewController बनाता है उसे संपत्ति सेट करनी चाहिए। –
मैंने ठीक उसी तरह किया था जैसा आपने SearchDateViewController क्लास में एक संपत्ति बनाने के लिए कहा था जो ठीक काम करता था। हालांकि, मैं अभी भी इस बात से परेशान हूं कि UIViewController से UIView/NSObject से उप-वर्गीकृत होने के तरीके को कैसे बदला जाए। विशेष रूप से SearchDateView का फ़ाइल स्वामी कौन बन जाता है? मैंने हर तरह से कोशिश की और मैंने जो कुछ भी किया है, वह त्रुटियों में परिणाम देता है ... – deadroxy