2009-07-09 1 views
3

質問タイトルが根本的に知られていないようです。私が何をしようとしているのかを説明しましょう。View ControllerをLocationManagerとAccelerometerなどの2つのデリゲートとしてセットアップするにはどうすればよいですか?

私はLocationManagerを発射し、GPSトラックを保存する録画開始ボタンがあり、次のUIViewControllerのサブクラスを定義しています。

ここでも加速度計を起動して、ユーザーがそれを記録できるようにしたいと思います。

私のViewControllerサブクラスはLocationManagerデリゲートですので、Accelerometerデリゲートにはどうすればよいですか?同じViewを使用することはできますか、またはサブビューを定義する必要はありますか?ここで

が私のUIViewControllerサブクラスためのインタフェースである:

@interface RootViewController : UIViewController <CLLocationManagerDelegate> { 
    NSMutableArray *eventsArray; 
    NSManagedObjectContext *managedObjectContext; 
    CLLocationManager *locationManager; 
    BOOL recording; 
    UILabel *pointLabel; 
    UIButton *startStop; 
} 

-(void)toggleButton; 

必要であれば、私はより多くのコードを投稿することができますが、私は、これはそれが適用されるすべてだと思います。おかげであなたの助けのために、私はiPhoneの開発に入ると、私の専門知識よ、私はいずれかを持っている場合は、ポインタレスのプログラミング言語である:)

答えて

8

1つのコントローラオブジェクトは、より多くのためにデリゲートも持っていることは完全に合理的です一つの事よりも。 LocationManagerとAccelerometerの両方でオーバーラップするデリゲートメソッドがある場合、つまりデリゲートが同じシグネチャのメソッドに応答する必要がある場合のみです。

@interface Controller : UIViewController 
    <CLLocationManagerDelegate, AccelerometerDelegate> 
{ 
    ... 
} 

そして、それ以降::

その向こう

、あなたは単に両方のための代理人、あなたがいずれかの代理人であることをそれを設定するのと同じ方法であるためにあなたのコントローラを設定します

[myLocationManager setDelegate:myController]; 
[myAccelerometer setDelegate:myController]; 

名前をお許しください。あなたが必要とするAccelerometerクラスとLocationManagerクラスの名前が頭の上からわかりません。私はちょうど何か記述的な名前が頭に来た使用した:

関連する問題