我想将值从一个视图控制器中的分段控制器传递到另一个视图控制器。我发现了另一个问题,但我不明白如何实际实现委托方法。 (原始问题:Passing UISegmentedControl values from FlipSideViewController in an Utility application to the mainviewcontroller…)
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 {
非常感谢任何答案。 提前致谢。
答案 0 :(得分:1)
您的实用程序视图控制器需要指向委托的指针 所以
@property(weak) id< FlipsideViewControllerDelegate> delegate;
然后在您的实用程序视图中,当视图更改并调用委托
时,控制器具有IBAction- (IBAction)segmentedControlClicked:(id)sender {
[self.delegate flipsideViewControllerSelectionChangedToIndex:[sender selectedSegment]];
}