2011-06-23 12 views
0

iphoneのUIから位置の更新を開始/停止することは可能ですか?私がアプリケーションから必要とするのは、「停止」をクリックしてから「開始」をクリックしない限り、私の位置情報を表示することだけです。iPhoneのUIから位置の更新を停止しますか?

私は自分の位置が適切に表示されていると思いますし、2つのIBButtonを作成してそれぞれの機能を作成しましたが、それぞれをクリックするとアプリがクラッシュしますそれらのボタンの1つ。これらの関数をviewcontroller.mの下に置きました。

私はこれに新しいですので、どんな助けにも感謝します。ありがとう!

  • (IBAction)startUpdating:(CLLocation *)位置 {

    [位置startUpdatingLocation]。

    }

  • (IBAction)stopUpdating:(CLLocation *)位置 {

    [位置stopUpdatingLocation]。

    }

答えて

2

スタート/ stopUpdatingLocationのでCLLocationManagerインスタンスを作成... CLLocationManagerインスタンスメソッドではなく、CLLocationインスタンスメソッドです。アクションのコロンの後の事はするので

-(void)viewDidLoad{ 
    [super viewDidLoad]; 
    locationManager = [[CLLocationManager alloc] init]; 
} 
-(void)viewDidUnload{ 
[locationManager stopUpdatingLocation]; 
[locationManager release]; 
[super viewDidUnload]; 
} 

-(IBAction)toggleUpdating:(id)sender 
{ 
    if(!updating) 
    { 
     [locationManager startUpdatingLocation]; 
    }else{ 
     [locationManager stopUpdatingLocation]; 
    } 
    updating = !updating; 
} 

また、上記のあなたのアクションは、動作しません:

@interface someClass:somesuperclass{ 
CLLocationManager * locationManager; 
BOOL updating; 
} 
-(IBAction)toggleUpdating:(id)sender; 

@end 

は、どこかのビューのロード/またはinitサイクルにおける.Mの.h

あなたの場合には、アクションを送信したオブジェクト、UIButtonになります。

+0

ありがとう、本当に役に立ちました!しかし、2つの簡単な質問:1.私はこのコードをどこに置くべきですか? View Controllerにそれを書いてもよろしいですか?私はviewDidLoadメソッドに入れて、それもコンパイルしていません...また:2)この実装で開始/停止UIBUttonsを組み込むにはどうすればいいですか?私は開始/停止の2つのボタンでユーザ入力を得たいと思います。ありがとう! – TommyG

+0

もう少し明確にするために変更しました。 1つのボタンを使用し、 'updated'に基づいてボタンの名前を変更するか、またはロジックを2つのアクションに分割することができます。または、UIButtonのタグを0と1に設定してから、送信ボタンを確認してアクションを送信したボタンを確認してください。いくつかのオプションがあります。 –

+0

ありがとう!だから私はこれをやってしまった - (IBAction)startUpdating { CLLocationManager * locationManager = [[CLLocationManager alloc] init]; [locationManager startUpdatingLocation]; } - (IBAction) {CLLocationManager * locationManager = [[CLLocationManager ALLOC] INIT]をstopUpdating。 [locationManager stopUpdatingLocation]; } 2つのIBButtonを使用していますが、[停止]をクリックするとこのメソッドに入りますが、私のコンソールで位置の更新を取得しています... stopUpdatingLocationは本当に停止するのですか? – TommyG

関連する問題