2011-01-17 6 views
0

たとえば、flipsideviewcontrollerのsegmentedcontrolが変更された場合、Mainviewcontrollerのmaptypeをサテライトからハイブリッドに変更しますか?何が間違っているのですか?基本的に、私はmainviewcontrollerがflipsideviewcontrollerで行われた変更に反応するようにします。UtilityアプリケーションのFlipSideViewControllerのUISegmentedControl値をmainviewcontrollerに渡します...

FlipsideViewController.h

#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 
#import <MapKit/MKMapView.h> 

@protocol FlipsideViewControllerDelegate; 


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

     IBOutlet UISegmentedControl *mapType_; 

    } 

    @property (nonatomic, retain) UISegmentedControl *mapType_; 

    @end 

MainViewController.h

@interface MainViewController : UIViewController <XXXX> { 
IBOutlet UISegmentedControl *mapType; 
} 

@property (nonatomic, retain) UISegmentedControl *mapType; 

@end 

MainViewController.m

-(void)viewDidLoad { 
     if(mapType.selectedSegmentIndex==0){ 
      mapView.mapType=MKMapTypeStandard; 
     } 

     else if (mapType.selectedSegmentIndex==1){ 
      mapView.mapType=MKMapTypeSatellite; 
     } 

     else if (mapType.selectedSegmentIndex==2) { 
      mapView.mapType = MKMapTypeHybrid; 
     } 
    } 

これを可能にする方法の任意のアイデア?何が間違っているのですか?本当に答えに感謝しますか?ありがとう!

デリゲートメソッドを実装するにはどうすればよいですか?

答えて

4

(1)は、この新しい方法でFlipsideViewControllerDelegateプロトコルを拡張:

-(void)flipsideViewControllerSelectionChangedToIndex:(int)index; 

(2)セグメント化されたコントロールのにValueChangedイベントにresondするために、FlipsideViewControllerでIBActionを追加:

-(IBAction) valueChanged { 
    [delegate flipsideViewControllerSelectionChangedToIndex: mapType_.selectedSegmentIndex]; 
} 

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

(3)MainViewControllerでデリゲートメソッドを実装210

そして、MainViewControllerのIBOutletを削除してください!

+0

デリゲートメソッドをどのように実装すればよいですか?私はしようとしたが、私はそれを行う方法を知らない... – Krismutt

関連する問題