UITableview にセルの配列を設定しようとしています。通常は viewDidLoad メソッドからこれを行いますが、今回は場所に基づいて配列を設定したいと考えています。以下は私のインターフェースの最初の行です:
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> {
実装ファイルでは、viewDidLoad メソッドは次のようになります。
- (void)viewDidLoad {
// for location
self.locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[super viewDidLoad];
}
didUpdateToLocation メソッドでセルの配列を設定します。
self.title = @"Open Buildings";
NSMutableArray *buildingArray = [[NSMutableArray alloc] initWithObjects:building1,
self.controllers = array;
場所が見つかったときにビューのタイトルが更新されますが、配列は設定されません。viewdidupdate で上記のコードを使用したとき、配列は以前に入力されました。ビューがviewDidLoadメソッドで読み込まれると、アプリケーションは位置情報を持たないため、didupdatelocationメソッドに移動する必要がありました。