我想在兩個視圖之間傳遞一個整數。當我從View1返回到MainView時,不會傳遞該值,並且控制檯中不顯示NSLog(@「Changed map」)。我尋找答案,並嘗試了一切,但它不會工作!感覺像代表錯誤的代表...使用UISegmentedControl傳遞視圖之間的值
任何想法?
View1.h
@class FlipsideViewController;
@protocol FlipsideViewControllerDelegate
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller;
-(void)flipsideViewControllerSelectionChangedToIndex:(int)index;
@end
@interface FlipsideViewController : UIViewController {
}
@property (weak, nonatomic) id <FlipsideViewControllerDelegate> delegate;
@property (nonatomic, retain) IBOutlet UISegmentedControl *mapType;
- (IBAction)valueChangedMap:(id)sender;
@end
View1.m
-(IBAction)valueChangedMap:(id)sender {
[self.delegate flipsideViewControllerSelectionChangedToIndex:[sender selectedSegmentIndex]];
NSLog (@"%d",[sender selectedSegmentIndex]);
[self dismissViewControllerAnimated:YES completion:nil];
}
MainView.h
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, UIPopoverControllerDelegate, MKMapViewDelegate> {}
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@property(weak) id<FlipsideViewControllerDelegate> delegate;
@end
MainView.m
-(void)flipsideViewControllerSelectionChangedToIndex:(int)index {
NSLog(@"Changed map");
if (index == 0) mapView.mapType = MKMapTypeStandard;
if (index == 1) mapView.mapType = MKMapTypeHybrid;
if (index == 2) mapView.mapType = MKMapTypeSatellite;
}
您確定代表不是零嗎?你在哪裏設置代表?另外,你的'Changed map'方法應該使用一個默認情況下的開關或者一個if/else來確保你不期望的值被捕獲。 – Hunter