2010-09-23 5 views
7

में विस्तार से देखने के लिए नेविगेशन नियंत्रक जोड़ें मैं इस उदाहरण का अनुसरण कर रहा हूं: http://doronkatz.com/ipad-programming-tutorial-hello-world। यह उदाहरण बहुत अच्छा काम करता है।splitview

अब मुझे स्प्लिटव्यू में 3 टैब और प्रत्येक टैब के लिए एक नया नेविगेशन नियंत्रक चाहिए। लेकिन मुझे नहीं पता कि इसे कैसे कार्यान्वित किया जाए। मैं इस कोड पर जाएँ:

- (void)setDetailItem:(id)newDetailItem { 
if (detailItem != newDetailItem) { 
    [detailItem release]; 
    detailItem = [newDetailItem retain]; 

    // Update the view. 
    navigationBar.topItem.title = detailItem; 

    if ([detailItem isEqualToString:@"Test"]) { 
     TestViewController *testViewController = [[TestViewController alloc] initWithNibName:@"TestView" bundle:nil]; 
     [self.navigationController pushViewController:testViewController animated:NO]; 
     [mapViewController release]; 

    } 
    if ([detailItem isEqualToString:@"Test2"]) { 

    } 

} 

if (popoverController != nil) { 
    [popoverController dismissPopoverAnimated:YES]; 
}   

लेकिन मुझे पता है मैं वास्तव में 'pushviewcontroller' का उपयोग करने की जरूरत नहीं है कि, मैं सिर्फ एक नया navigationController कि बिंदु से शुरू करना चाहते हैं, और इतने SPLITVIEW में प्रत्येक टैब के लिए। मैं यह कैसे हासिल कर सकता हूं? मुझे पता है कि यह वास्तव में बुनियादी है, लेकिन मैं इसे समझ नहीं सकता।

धन्यवाद।

+0

यहाँ आप इस का उपयोग कर सरल जोड़ने नेविगेशन नियंत्रक करते हैं और आधार को देखने के लिए subview जोड़ सकते हैं। अगर आपको कोई समस्या मिलती है तो कृपया मुझे बताएं। मुझे आपके लिए इस मुद्दे को हल करना अच्छा लगेगा। – AppAspect

उत्तर

0

यदि मैं आपको सही ढंग से समझता हूं, तो आपके पास UISplitViewController है, और आप तीन UINavigationControllers को विस्तृत दृश्य के रूप में रखना चाहते हैं। जो मामले में, निम्नलिखित अगर आपके UISplitViewController वर्ग में लागू काम करेगा:

if ([detailItem isEqualToString:@"Test"]) { 

     TestViewController *testViewController = [[TestViewController alloc] initWithNibName:@"TestView" bundle:nil]; 

     //since self.viewControllers is immutable, let's make our own temporary copy. 
     NSMutableArray *tempArray = [self.viewControllers mutableCopy]; 

     //switcheroo with the new view controller 
     [tempArray replaceObjectAtIndex:1 withObject:testViewController]; 

     // our new view controller is retained by the array, so let's release it 
     [testViewController release]; 

     //set the new array to be displayed 
     self.viewControllers = tempArray; 

     //clean up - out mutableCopy returns a retained object 
     [tempArray release]; 


    } 
2

मैं आपकी आवश्यकता को समझने के रूप में, आप मुख्य नियंत्रक के रूप में एक विभाजन दृश्य नियंत्रक चाहते हैं। बायां पैनल एक आइटम का चयन करेगा और उस आइटम के लिए सही विवरण दृश्य में 3 टैब होंगे। प्रत्येक टैब में एक नेविगेशन नियंत्रक होगा। ऐप स्टोर विस्तार दृश्य के समान पैटर्न का पालन करता है।

अपने नियंत्रकों को एक पेड़ के रूप में ढांचा बनाना महत्वपूर्ण है।

  • जड़: विभाजित दृश्य नियंत्रक
    • सूची दृश्य: तालिका नियंत्रक (फल के चयन के लिए MasterViewController)
    • विवरण दृश्य: टैब नियंत्रक (तरबूज के बारे में सभी जानकारी)
      • tab1: नेविगेशन नियंत्रक
        • पृष्ठ 1: पहला टैब रूट नियंत्रक (तरबूज का इतिहास)
      • tab2: नेविगेशन नियंत्रक
        • पेज 1: पहला टैब जड़ नियंत्रक (तरबूज खेतों के नक्शे)
      • tab3: नेविगेशन नियंत्रक
        • पृष्ठ 3: पहला टैब जड़ नियंत्रक (तरबूज व्यंजनों)

इस पैटर्न के साथ आप viewDidLoad पर नियंत्रक संरचना बना सकते हैं, लेकिन फिर setDetailItem का जवाब देते समय पृष्ठ 1, 2, 3 की सामग्री को बदलें, UINavigatorContoller में एक पॉपToRootViewController एनीमेटेड संदेश है जो प्रत्येक नेविगेशन नियंत्रक स्टैक को 3 में से प्रत्येक के लिए रीसेट कर सकता है नेविगेशन नियंत्रक। जब मैंने आईओएस विकास सीखना शुरू किया, तो मैंने इंटरफेस बिल्डर का उपयोग करने से कोड में कंट्रोलर पदानुक्रमों को आसान बना दिया। अवधारणाओं को प्राप्त करने के बाद आईबी तेज है। आप पेज 1,2,3 रूट व्यू कंट्रोलर के लिए अभी भी एक आईबी निब नियंत्रक बना सकते हैं।

अच्छा संदर्भ: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007457