2009-04-01 2 views
1

UITableviewにセルの配列を設定しようとしています。私は通常これをviewDidLoadメソッドから行いますが、今回は位置に基づいて配列を設定したいと思います。以下は私のインターフェイスの最初の行です:iPhone SDKのCLLocationManagerDelegateのdidUpdateToLocationメソッドを待っているときにUITableViewが設定されない

@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メソッドに移動しなければなりませんでした。

答えて

2

テーブルビューでは、新しいデータがあることがわかりません。新しいデータを取得したら、テーブルビューにリロードするように指示する必要があります。

[myTableView reloadData]; 
+0

実装クラスがtableviewで、nibファイルではない場合は、どのようにテーブルビューをリロードしますか? – Atma

+0

ivarまたはoutletのいずれかへの参照を設定する必要があります。 @interfaceのRootViewController:のUITableViewController { – August

+0

。何か間違っているのですか? – Atma

関連する問題