2011-03-02 16 views
5

में नेविगेशन नियंत्रक आईपैड ऐप विकास में कुल नौसिखिया हूं।पॉपओवर

मुझे एक ऐसा एप्लिकेशन बनाने में दिलचस्पी है जहां मेरे पास आइटम की सूची के साथ एक टेबलव्यू दिखाने वाला पॉपओवर है। फिर मैं एक आइटम का चयन करता हूं और व्यू ड्रिल को किसी अन्य टेबलव्यू में जोड़ता हूं जिसमें आइटम की एक और सूची होती है और साथ ही साथ नेविगेट बटन भी होता है।

जिस स्तर पर मैं ड्रिलिंग करूँगा वह गतिशील है।

कृपया समस्या को हल करने में मेरी सहायता के लिए उचित संसाधनों के साथ मुझे मार्गदर्शन करें।

+0

मैं वास्तव में क्या देख रहा था! :) – Breakpoint

उत्तर

5

मैंने पहले किया और यह अच्छी तरह से काम करता है! बस अपने बटन को यह समारोह (शायद एक UIBarButtonItem) आवंटित:

UIPopoverController *popover; 
bool isPopoverOpen = false; 
-(void)openPopover{ 
    if(!isPopoverOpen){ 
     FirstViewController *firstViewCtrl = [[PartsViewCtrl alloc] init]; 
     UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:firstViewCtrl]; 
     [firstViewCtrl release]; 
     navbar.contentSizeForViewInPopover = CGSizeMake(TABLE_WIDTH, TABLE_HEIGHT); 
     popover = [[UIPopoverController alloc] initWithContentViewController:navbar]; 
     [navbar release]; 
     popover.delegate = self; 
     popover.popoverContentSize = CGSizeMake(TABLE_WIDTH, TABLE_HEIGHT); 
     [popoverOnPartsView presentPopoverFromBarButtonItem:barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
     isPopoverOpen = true; 
    }else{ 
     [popover dismissPopoverAnimated:YES]; 
     [popover release]; 
     isPopoverOpen = false; 
    } 
} 

और FirstViewController को यह समारोह जो एक UITableView है लागू:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    SecondViewController *secondViewController = [[SecondViewController alloc] init]; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
    [secondViewController release]; 
} 

अब आप एक UITableView SecondViewController को भी जोड़ सकते हैं। और अन्य परिदृश्यों के लिए इस परिदृश्य का उपयोग करें!

मुझे आशा है कि यह आपके लिए काम करेगा! अधिक पॉप

4

जब आप पॉपओवर बनाते हैं, तो आपको केवल UINavigationController आवंटित करने की आवश्यकता होती है और पॉपओवर के भीतर दृश्य पदानुक्रम को प्रबंधित करने के लिए इसका उपयोग करने की आवश्यकता होती है। एक त्वरित वेब खोज ने this tutorial का खुलासा किया जो आपको जानने के लिए आवश्यक चीजों को शामिल करता है।

मुझे यह भी कहना था कि आपको सामान्य रूप से उद्देश्य-सी और आईओएस विकास के साथ तेजी से उठना चाहिए। जो भी आप वास्तव में कर रहे हैं उसे समझने के बिना नेट पर मिली चीजों का उपयोग न करें और अंधेरे से उपयोग न करें :)

+0

हाय, धन्यवाद उत्तर जल्दी जवाब। मैं इस पर काम करूंगा और अपडेट करूँगा अगर यह मेरे लिए काम करता है। :) – user640918

2
Do the following steps 

1) बटन की क्रिया में (कि बटन पर क्लिक करके दिखाई देनी चाहिए) कोड

[यहाँ PopOverContentViewController बारे में एक ViewController मैं कहाँ तालिका दृश्य और आइटम के कई सूची है जो जब से अधिक पॉप आता है प्रदर्शित किया जाना चाहिए]

- (IBAction)callPopOver:(id)sender 
    { 


    UIButton *button = (UIButton*)sender; 
    PopOverContentViewController1 *popOverContent = [[PopOverContentViewController1  alloc]initWithNibName:@"PopOverContentViewController1" bundle:nil]; 

    UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:popOverContent]; 

    navbar.contentSizeForViewInPopover = CGSizeMake(266, 200); 
    popover = [[UIPopoverController alloc] initWithContentViewController:navbar]; 
    popover.delegate = self; 
    [popover presentPopoverFromRect:CGRectMake(button.frame.size.width/2, button.frame.size.height/1, 1, 1) inView:button permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    [popover setPopoverContentSize:CGSizeMake(266, 200) animated:YES]; 
    [popUpContent release]; 


    }  

2) अब पंक्तियों में से किसी पर क्लिक करने पर तालिका दृश्य बदलने के लिए PopOverViewController.m

में इस कोड लिखें

[यहाँ PopOverViewController2 ViewController जहाँ हम अगले तालिका दृश्य है प्रदर्शित करने के लिए है]

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    PopOverViewController2 *secondViewController = [[PopOverViewController2 alloc] init]; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
    [secondViewController release]; 
    } 

3) पॉपओवर के आकार में परिवर्तन से बचने के लिए, जबकि नेविगेशन दोनों को देखने के viewDidLoad में निम्न कोड लिखने नियंत्रकों (यानी PopOverContentViewController1 और PopOverContentViewController2)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self setContentSizeForViewInPopover:CGSizeMake(266, 200)]; 
} 
संबंधित मुद्दे