में सभी UIViewControllers के क्लास नाम को लॉगिंग करना हमें आउटसोर्सिंग से विशाल प्रोजेक्ट प्राप्त हुआ है जिसे हम "मरम्मत" करने का प्रयास कर रहे हैं। परियोजना के भीतर सैकड़ों दृश्य नियंत्रक हैं। हमारा लक्ष्य यह निर्धारित करना है कि वर्तमान में हम कौन सी कक्षा डिवाइस पर देख रहे हैं।प्रोजेक्ट
हमारा समाधान (जो काम नहीं करता है, इसलिए SO सवाल) निम्नानुसार है।
इस के साथ एक वर्ग के माध्यम से UIViewController की viewDidAppear विधि ओवरराइड:
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"Current View Class: %@", NSStringFromClass(self.class));
[self viewDidAppear:animated];
//Also tried this:
//[super viewDidAppear:animated];
}
इस श्रेणी में .pch परियोजना के में डाल दिया जाएगा।
इसके लिए सैकड़ों व्यू कंट्रोलर में कोई अतिरिक्त कोड नहीं डालना होगा और आसानी से चालू और बंद किया जाना चाहिए। यह वजह से काम नहीं था, क्योंकि हम अब सीखा है, < मेम> एक बस श्रेणी < /मेम के माध्यम से एक मौजूदा विधि पर हावी नहीं होता>।
हम क्या खो रहे हैं?!
इस कोड में एक अनंत लूप है, है ना?आपको [सुपर व्यूडिडएपियर: एनिमेटेड] कॉल करना चाहिए; –
@ ब्रूनोडोमिंग्स क्योंकि यह UIViewController पर एक श्रेणी है, सुपर कॉलिंग एनएसओब्जेक्ट (UIViewController के सुपरक्लास) पर ViewDidAppear को कॉल करेगा जो मौजूद नहीं है। – adamweeks
आप UIWindow rootViewController से वर्तमान दृश्य दृश्य (नियंत्रक देखें) पा सकते हैं। – 9dan