0

ここにコードがあります

-(id) initWithNibName:(NSString*) nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
{
   ...
   [segCtrl addTarget:self action:@selector(OnSegCtrlChanged:) forControlEvents:UIControlEventValueChanged];
}

-(void)OnSegCtrlChanged:(id)sender
{
   if(segCtrl.selectedSegmentIndex==0)
   {
      [mapvw setMapType:MKMapTypeSatellite];
   }
   else if//....
}

マップ イメージの表示を変更するコードはそのように見えますが、残念ながら、プログラムをコンパイルして実行した後は何も機能しません。「何も機能しない」とは、画面上のセグメント化されたコントロールからインデックスを選択した後、対応するマップタイプが表示されないことを意味します。

[更新] InitWIthNibName に入れたセグメント化されたコントロールの初期化は、開始するのに適切な場所ではないため、正しくないと思います。そうでない場合は、どこに残せばよいですか?

4

2 に答える 2

1

メソッドでターゲットを設定しviewDidLoad:ます..以下のように..

- (void)viewDidLoad
{
       .....
      [segCtrl addTarget:self action:@selector(OnSegCtrlChanged:) forControlEvents:UIControlEventValueChanged];
}
于 2012-11-05T04:48:40.730 に答える
0

loadViewメソッドで設定します。

- (void)loadView
{
       .....
      [segCtrl addTarget:self action:@selector(OnSegCtrlChanged:) forControlEvents:UIControlEventValueChanged];
}

こっちの方がいいかも……。

于 2012-11-05T05:12:40.173 に答える