कंटेनर दृश्य नियंत्रक उदाहरण [बंद]


94

क्या कोई मुझे कंटेनर व्यू कंट्रोलर के रूप में कस्टम व्यू कंट्रोलर बनाने के किसी भी अच्छे उदाहरण की ओर संकेत कर सकता है? एकमात्र दस्तावेज जो मुझे मिल सकता है, वह UIViewController Class Reference में पैराग्राफ का एक जोड़ा है । मुझे लगता है कि मुझे उससे थोड़ी अधिक जानकारी चाहिए और एक उदाहरण कार्यान्वयन अच्छा होगा। Google ने कुछ भी नहीं किया है।

मुझे इस विधि में विशेष रुचि है:

transitionFromViewController:toViewController:duration:options:animations:completion:

क्या आपको बताए गए एक हाइपर क्रिप्ट के अलावा इसके लिए अन्य स्रोत मिले?
जॉन एस्ट्रोपिया

1
अभी नहीं। अगर मेरे पास समय है तो मैं आज एक और खुदाई करने जा रहा हूं। यह विचित्र लगता है कि इसके बारे में इतनी कम जानकारी दी जाएगी कि यह कितना महत्वपूर्ण और उपयोगी है। मुझे आश्चर्य है कि अगर यह छोटी गाड़ी है और बेहतर होने पर इसे प्रलेखित किया जाएगा।
अंडरस्ट्रेक्शन

3
यह मेरे लिए बेहद भ्रामक है। उदाहरण के लिए, दृश्य में केवल एक एम्बेड किया गया नियंत्रक हो सकता है। क्या होगा यदि आप उस कंटेनर दृश्य पर नियंत्रक को स्विच करना चाहते हैं?
user4951

@ जनक निर्मल बहुत मजबूर।
अंडरस्ट्रेक्शन

क्या मैं कंटेनर दृश्य छिपा सकता हूं
मौलिक शाह

जवाबों:


51

मुझे अब तक मिली सबसे अच्छी बात WWDC 2011 सत्र वीडियो सत्र 102 - UIViewController कंटेनर को लागू करना है


1
डिट्टो। यह मेरा पसंदीदा डेमो कोड उदाहरण नहीं है, लेकिन यह वीसी कंटेनरों के साथ-साथ मेमोरी प्रबंधन को भी ठीक से लागू करता है - यह वास्तव में महत्वपूर्ण है कि आपके बच्चे को देखने वाले नियंत्रक तब रिलीज़ होते हैं जब वे अब दिखाई नहीं देते हैं।
memmons

1
दुर्भाग्य से, कंटेनरीव्यूकंट्रोलर का उपयोग करने के लिए डेमो ने काम नहीं किया, क्योंकि उसके पास अपने iPad पर ईमेल सेटअप नहीं था :-(
केन एम। हेगर्टी

क्या उस सत्र में कोड नमूना है?
user4951

क्या आपके पास अब नमूना कोड है, मुझे इसकी आवश्यकता है क्योंकि मैंने बहुत कोशिश की है लेकिन अभी तक कोई विलेय नहीं है।
iPhone प्रोग्राम ने

37

WWDC सत्र वीडियो सत्र 102 के अलावा - UIViewController कन्टेनमेंट को लागू करना जो कि पहले से ही उल्लेख किया गया है, "iOS पर व्यू कंट्रोलर्स का इवोल्यूशन" पर Apple WWDC 2012 सत्र भी इस विषय को शामिल करता है और उदाहरण कोड नमूना कोड पैकेज का हिस्सा है:

https://developer.apple.com/devcenter/download.action?path=/wwdc_2012/wwdc_2012_sample_code/wwdc_2012_session_code.dmg

यहाँ एक उदाहरण भी है: https://github.com/toolmanGitHub/stackedViewControllers


2
+1 उल्लेख करता है कि उस शापित कोड पैकेज को कहां प्राप्त करना है। मैं इसके माध्यम से देख रहा हूं।
user4951

6
+1 फिर से, क्यों ओ Apple अपने सदस्य पृष्ठों पर WWDC सत्र कोड नहीं डाल सकता है?
axello

+1, क्या आप इस स्रोत कोड पथ को प्राप्त करने के बारे में साझा करना चाहेंगे?
जनक निर्मल

1
@JanakNirmal आपको किस सोर्स कोड में दिक्कत हो रही है? WWDC कोड प्राप्त करने के लिए बस dmg लिंक का अनुसरण करें और अपने ऐप्पल डेवलपर आईडी से लॉगिन करें।
जोसेफ

17
- (void)viewDidLoad{
    [super viewDidLoad];

    // I put self in a Navigation VC so we can use its right navigationbar 
    // item for triggering the transition
    self.navigationItem.rightBarButtonItem = 
     [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                                                    target:self 
                                                    action:@selector(button:)] 
                                                                  autorelease];

    // create test1 and test2 instance (subclass UIViewController and 
    // also need to define their own nibs)
    vc1 = [[test1 alloc]initWithNibName:@"test1" bundle:nil];
    vc2 = [[test2 alloc]initWithNibName:@"test2" bundle:nil];

    //add to the container vc which is self    
    [self addChildViewController:vc1];
    [self addChildViewController:vc2];

    //the entry view (will be removed from it superview later by the api)
    [self.view addSubview:vc1.view];
}

यह IBAction दो VCs के बीच संक्रमण को ट्रिगर करता है:

-(IBAction)button:(id)sender {
    [self transitionFromViewController:vc1 
                      toViewController:vc2 
                              duration:0.5    
                               options:UIViewAnimationOptionTransitionCurlDown 
                            animations:nil 
                            completion:nil];
}

1
यह एक बेहतरीन उदाहरण है। लेकिन इस मामले में स्मृति प्रबंधन में सुधार किया जा सकता है: अधिक उपयुक्त समाधान के लिए stackoverflow.com/a/8453677/849616
Vive

1
ऐसा नहीं है कि आप गलत हैं। लेकिन [आत्म AddChildViewController: vc1]; कोई मतलब नहीं है। कंटेनर VC में सेवरल कंटेनर व्यू कंट्रोलर हो सकते हैं।
user4951

@ मैं अपनी परियोजना के एक बिंदु पर पहुँच गया हूँ जहाँ मैं स्मृति प्रबंधन के बारे में चिंतित हूँ। क्या आप मुझे बता सकते हैं कि विशेष रूप से आपके द्वारा पोस्ट किया गया लिंक मेमोरी मैनेजमेंट के मामले में बेहतर है? मैं बहुत नया हूं और विसंगतियों को देखते हुए एक कठिन समय है
जेकॉब्रोनिंजोर्ग


10

यह हो सकता है:

http://subjective-objective-c.blogspot.com/2011/08/writing-high-quality-view-controller.html

अपनी आवश्यकताओं के लिए पर्याप्त हो?


4
वास्तव में मुझे पहले ही पता चल गया था, लेकिन दुर्भाग्य से Ios4 के बारे में लिखा गया है, लेकिन 5 ने महत्वपूर्ण बदलाव किए हैं। Apple अब स्पष्ट रूप से कस्टम व्यू कंट्रोलर कंटेनर बनाने का समर्थन करते हैं, हालांकि वे हमें यह प्रयोग करने में मदद करना नहीं चाहते हैं। हालांकि धन्यवाद।
अंडरस्ट्रेक्शन

क्या आप मुझे दिखा सकते हैं कि वे ऐसा कहां कहते हैं। आपको संदेह नहीं है, सिर्फ उत्सुक है, क्योंकि मैं इसके साथ संघर्ष कर रहा हूं।
रुई पेरेस

4
कोई चिंता नहीं। मैंने उनके कंटेनर वर्गों के लिए कोड के माध्यम से देखा और उनमें से कोई भी निम्न विधियों का उपयोग नहीं करता है: addChildViewController :, removeFromParentViewController, transitionFromViewController: toViewController: अवधि: विकल्प: एनिमेशन: पूरा होने: UIViewController के लिए ios5 प्रलेखन।
अंडरस्ट्रेक्शन

8

पता नहीं कि यह एक "अच्छा" उदाहरण है, लेकिन आप https://bitbucket.org/javieralonso/jaacordeonviewcontroller/overview से एक मुफ्त कंटेनर ViewController प्राप्त कर सकते हैं

यह पूर्ण रूपक रूपक कंटेनर व्यू कंट्रोलर है


अच्छा लगा। यह उपयोगी लगता है।
१raction

3

ये विषय पर मेरे पसंदीदा (iOS7-ready) ट्यूटोरियल / उदाहरण हैं (तीनों में स्रोत कोड जीथब पर उपलब्ध है):

नियंत्रक कंटेनर देखें

कस्टम कंटेनर दृश्य नियंत्रक बदलाव

इंटरएक्टिव कस्टम कंटेनर व्यू कंट्रोलर ट्रांजिशन

और फिर, निश्चित रूप से, Apple उस विषय पर एक संपूर्ण लेखन प्रदान करता है जो मुझे अमूल्य लगता है:

कस्टम कंटेनर व्यू कंट्रोलर बनाना

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.