नहीं कहा जाता है, मैं प्रोग्रामिंग के रूप में एक नेविगेशन नियंत्रक के भीतर एक UIViewController सेट करना चाहता हूं, हालांकि loadView और न हीडिडलोड विधि को कॉल किया जाता है। loadView करनेUIViewController का loadView
MyViewController *viewController = [[MyViewController alloc] init];
UIView *view = [[UIView alloc] initWithFrame:window.frame];
viewController.view = view;
UINavgationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:[navController view];
[window makeKeyAndVisible];
जब मैं अनुप्रयोग मैं एक navigationbar देखना शुरू करते हैं, लेकिन कोई कॉल:
यह एप्लिकेशन प्रतिनिधि में मेरी कोड है। मैं क्या खो रहा हूँ? मैंने सोचा था कि loadView बुलाया जाता है के बाद आप view
संपादित
MyViewController *viewController = [[MyViewController alloc] init];
[viewController view]; // doesn't look right?
UINavgationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:[navController view];
[window makeKeyAndVisible];
योना की टिप्पणी की ओर संपादित फोन है, लेकिन अभी भी loadView बुलाया प्राप्त करता है।
अपनी दूसरी टिप्पणी के बारे में, दृश्य निर्दिष्ट करते हुए, आपका मतलब कोड की दूसरी और तीसरी पंक्ति है, है ना? यह समझ आता है। लेकिन मैं इस मामले में गेटर को कैसे बुलाऊंगा? –
'[व्यू कंट्रोलर व्यू] 'दृश्य के गेटटर को आमंत्रित करता है लेकिन आपको ऐसा करने की आवश्यकता नहीं होनी चाहिए। 'UINavigationController' आपने अपना व्यू कंट्रोलर जोड़ा है ताकि दृश्य पदानुक्रम में आपके नियंत्रक के दृश्य को जोड़ने के लिए कुछ बिंदु पर गेटर को कॉल किया जा सके। क्या आप अपना व्यू कंट्रोलर कार्यान्वयन साझा कर सकते हैं? ऐसा लगता है कि आपके पास कुछ और चल रहा है। – Jonah
यह मूल रूप से एक्सकोड से खाली UIViewController टेम्पलेट है, लेकिन init के अलावा कोई (दृश्य) विधि कॉल नहीं की जाती है। वहां मैंने इस तरह एक दृश्य स्थापित करने की कोशिश की: - (आईडी) init { \t स्वयं ((स्वयं = [सुपर init])) { \t UIView * view = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] सीमाएं] ]; \t self.view = देखें; \t [देखें रिलीज]; \t} स्वयं लौटें; } –