2012-11-09 456 views
0

我想將一個視圖控制器中的分段控制器的值傳遞給另一個視圖控制器。我發現了另一個問題,但我不明白如何實際實現委託方法。 (原題:Passing UISegmentedControl values from FlipSideViewController in an Utility application to the mainviewcontroller…在控制器之間傳遞UISegmentedControl值...

FlipsideViewController.h

@protocol FlipsideViewControllerDelegate; 
-(void)flipsideViewControllerSelectionChangedToIndex:(int)index; 

@interface FlipsideViewController : UIViewController { 
      id <FlipsideViewControllerDelegate> delegate; 

     IBOutlet UISegmentedControl *mapType_; 

    } 
    @property (nonatomic, retain) UISegmentedControl *mapType_; 

    @end 

MainViewController.h

@interface MainViewController : UIViewController <XXXX> { 
} 

@property (nonatomic, retain) UISegmentedControl *mapType; 

@end 

MainViewController.m

-(void)flipsideViewControllerSelectionChangedToIndex:(int)index { 
    if (index == 0) mapView.mapType = MKMapTypeStandard; 
    if (index == 1) mapView.mapType = MKMapTypeSatellite; 
    if (index == 2) mapView.mapType = MKMapTypeHybrid; 
    } 

如何調用該MainViewController的方法? ??

-(void)flipsideViewControllerSelectionChangedToIndex:(int)index { 

非常感謝任何答案。 在此先感謝。

回答

1

您的公用事業視圖控制器需要一個指向委託 所以

@property(weak) id< FlipsideViewControllerDelegate> delegate; 

然後在工具視圖控制器具有IBAction爲當視圖變化和調用委託

- (IBAction)segmentedControlClicked:(id)sender { 
    [self.delegate flipsideViewControllerSelectionChangedToIndex:[sender selectedSegment]]; 
} 
+0

我試過。該應用程序崩潰。 - [FlipsideViewController valueChangedMap]:無法識別的選擇器發送到實例0x1cd43790 2012年3月9日星期二02:35:19.874 ....任何其他想法? – Christoffer

+0

您實際上需要該方法,然後^^將xib中的視圖掛接到FlipsideView中的右側IBAction,然後您可以像上圖所示那樣將它傳遞給它。我甚至可以鞭打你一個小樣本應用程序...給我一個小時,得吃 –

+0

非常感謝你! :) – Christoffer

相關問題