मैं मैं सिम्युलेटर में एक स्मृति चेतावनी का अनुकरण करता हूं, और मेरे ऑफस्क्रीन दृश्य और उनके सबव्यू को विचार? loadView
में शून्य से viewDidUnload ।
viewDidUnload
के माध्यम से निकाल दिया जाता है। हालांकि, जब loadView
को फिर से फोन किया जाता है क्योंकि ये ऑफ़स्क्रीन दृश्य दृश्य में आते हैं, मेरी सबव्यूज़ ठीक से दूसरी बार पुन: निर्मित नहीं हो जातीं उदाहरण के लिए, मेरे लेबल और तालिका दृश्य खाली हैं, जो मैंने loadView
में बनाया है:
CGRect frame = CGRectMake (0, 0, 400, 600); UIView * theView = [[UIView alloc] initWithFrame: फ्रेम]; Self.view = theView; [द वीव रिलीज़]; Int w = frame.size.width; इंट एच = फ्रेम.size.height; सीजीएफ़टीएफ़फ्रैम = सीजीआरएक्टमेक (0, एच / 10, डब्ल्यू, एचएच * 7/10); UITableView * tblvw = [[UITableView alloc] initWithFrame: tblFrame शैली: UITableViewStylePlain]; Tblvw.delegate = self; Tblvw.dataSource = self; Self.resourcesTblVw = tblvw; [टीबीवीवी रिलीज]; [Self.view addSubview: resourcesTblVw]; CGRect lblFrame = CGRectMake (0, 0, w, 36); यूआईएलबल * एलएलएल = [[यूआईएलबीएल एलोक] इनिटविथफ्रेम: एलबीएलफ्रेम]; Lbl.font = [UIFont boldSystemFontOfSize: 20]; Lbl.backgroundColor = [UIColor colorWhite: 0.7 अल्फा: 1.0]; Lbl.text = name; Self.nameLabel = lbl; [एलबीएल रिलीज]; [Self.view addSubview: nameLabel];
पहला अनुमान यह होगा कि ऐसा इसलिए होता है क्योंकि दूसरी बार, कोड जो कि viewdidload में डेटा लोड करने के लिए निष्पादित हो जाता है, लोडव्यू विधि में नहीं है। इसलिए कोड को प्रतिलिपि करें जहां से आप डेटा लोड्स को टेबल में और इतने पर loadView विधि में लोड करते हैं ...
एक और चीज जो आप कर सकते हैं ... पसंदीदा विकल्प का एक तरीका बनाना है जैसे कि
उदाहरण:
- (शून्य) लोडडेटा {// यहां सभी तालिकाओं को लोड करने के लिए कोड दर्ज करें और इसी तरह। }
तब इस पद्धति को कॉल करें जब दृश्य लोड होता है ... जिसे लोडविएव विधि में इस पद्धति को काम करना चाहिए और कॉल करना चाहिए .... ताकि आप फिर से विचारों को सेट करने के बाद सब कुछ लोड हो जाए स्मृति चेतावनी।
पीके
Comments
Post a Comment