0

現在、別のビューコントローラー(BackgroundMapViewController)からのセグメント化されたコントロールを使用して、マップのマップタイプを(MapsViewControllerから)変更しようとしています。ページ カールを使用して、セグメント化されたコントロール (iPhone のマップ アプリなど) でビューコントローラーを表示します。問題は、BackgroundMapViewController から MapsviewController に情報を渡す方法がわからないことです。(おそらく委任を使用して??) 委任を使用して、オブジェクトの「作業」を他のオブジェクトに与えることは理解しましたが、ここでそれをどのように使用すればよいかわかりません。誰かが私の問題で私を助けてくれたら本当にありがたいです

(ここで UI の写真を見ることができます: http://i50.tinypic.com/169masx.png )

MapsBackgrounsViewController.h

    @interface MapBackgroundViewController : UIViewController{
    IBOutlet UISegmentedControl *segmentedControl;
    MKMapType mapType;
    }

    @property (nonatomic) IBOutlet UISegmentedControl *segmentedControl;
    @property(nonatomic) MKMapType mapType;
    - (IBAction)segmentedControllChanged:(id)sender;

MapsViewController.m

    @interface MapBackgroundViewController ()
    @end

    @implementation MapBackgroundViewController
    @synthesize segmentedControl, mapType;

    - (IBAction)segmentedControllChanged:(id)sender {

    if (segmentedControl.selectedSegmentIndex == 0) {
        mapType = MKMapTypeStandard;
    }else if (segmentedControl.selectedSegmentIndex == 1) {
        mapType = MKMapTypeSatellite;
    } else if (segmentedControl.selectedSegmentIndex == 2) {
       mapType = MKMapTypeHybrid;
    }


    [self dismissModalViewControllerAnimated:YES];

}

MapsViewController.h

   @interface MapsViewController : UIViewController<MKMapViewDelegate,   UISearchBarDelegate>{
   @private
   IBOutlet MKMapView *map;
   //some other outlet
   }

   @property (nonatomic, retain) IBOutlet MKMapView *map;
   @property (nonatomic, retain) IBOutlet  UISearchBar *searchBar;
   //some other actions and properties
4

1 に答える 1

0

mapType を保存する必要はありません。マップ ビューで直接設定するだけです。

@interface MapBackgroundViewController ()
@end

@implementation MapBackgroundViewController
@synthesize segmentedControl, mapViewController; // Connect mapViewController to your other view controller

- (IBAction)segmentedControllChanged:(id)sender {

if (segmentedControl.selectedSegmentIndex == 0) {
    self.mapViewController.map.mapType = MKMapTypeStandard;
}else if (segmentedControl.selectedSegmentIndex == 1) {
    self.mapViewController.map.mapType = MKMapTypeSatellite;
} else if (segmentedControl.selectedSegmentIndex == 2) {
   self.mapViewController.map.mapType = MKMapTypeHybrid;
}


[self dismissModalViewControllerAnimated:YES];
于 2012-05-19T14:11:18.647 に答える