एक UIViewController उपclass में, मेरे पास निम्न विधियां हैं:UIViewController: viewWillAppear कहा जाता है, viewDidAppear नहीं
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// do something
myTextField.text = @"Default";
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// do something
[myTextField selectAll:self];
[myTextField becomeFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
// do something
myTextField.delegate = self;
}
एनआईबी इंटरफ़ेस बिल्डर का उपयोग करके बनाया गया है। इसी दृश्य नियंत्रक ऑब्जेक्ट को pushViewController के माध्यम से नेविगेशन नियंत्रक द्वारा धक्का दिया जाता है।
इरादा व्यवहार पूरे पाठ का चयन करने के लिए और टेक्स्ट फ़ील्ड को पहले उत्तरदाता के रूप में सेट करने के लिए, टेक्स्ट फ़ील्ड में एक डिफ़ॉल्ट टेक्स्ट प्रविष्टि दिखाने के लिए है। [संपादित करें: मैंने देखा है कि सभी और को चुनने से पहले उत्तरदाता को कोई समझ नहीं आता क्योंकि चयन गायब हो जाएगा; फिर भी, मुझे आश्चर्य है कि तरीकों का वर्णन अगले तरीके के रूप में क्यों किया जाता है।]
हालांकि, जबकि विधियों को देखते हैंडलोड और देखेंविलपियर को कॉल किया जाता है, विधि दृश्यडिडएपियर को नहीं कहा जाता है। क्या कोई मुझे बता सकता है क्यों? वेब पर मिले अधिकांश प्रश्न और यहां दोनों व्यूविल्लियर/व्यूडिडएपियर के साथ सौदा नहीं कर रहे हैं; मैंने यह भी समझा कि सबव्यूज़ या प्रोग्रामेटिक रूप से बनाए गए विचारों में इन विधियों को विकसित नहीं किया गया है; लेकिन यह मामले में लागू नहीं होता है और मुझे आश्चर्य है कि इन "जीवन चक्र" विधियों में से एक क्यों विकसित हुआ है और दूसरा नहीं।
कोई विचार? धन्यवाद!
कोई स्मृति समस्या नहीं होनी चाहिए, कम से कम किया गया ReceiveMemoryWarning नहीं कहा जाता है। एक साफ सभी लक्ष्यों की मदद नहीं की। इसलिए मैंने आपकी सलाह का पालन किया और मैंने एक नई परियोजना में कक्षा की "प्रतिलिपि बनाई"। और यह काम करता है। : -/मैंने अपनी मूल कक्षा में ओवरराइड किए गए सभी तरीकों को जोड़ा है और एक प्रोजेक्ट में यह काम करता है, दूसरे में यह नहीं है। दोनों स्थितियों में दृश्य NavVcontroller पर pushViewController द्वारा दिखाया गया है। केवल अंतर: परीक्षण प्रोजेक्ट में एक एनवी कंट्रोलर है, मेरे प्रोजेक्ट में तीन हैं (रूट कंट्रोलर एक टैबबार कंट्रोलर है) –
@sven - मैं नेविगेशन बार के शीर्षक दृश्य को बदलना चाहता हूं। ऐसा लगता है कि दृश्यविल्लियर ट्रिगर होने पर दृश्य को अभी तक नेविगेशन बार पर धक्का नहीं दिया गया है। – OmniBus