-1

sqlite から取得したマップのタイトルを含むテーブル ビューがあります (緯度と経度の値も格納されています)。

各タイトルをクリックすると、次のビューでそのタイトルでマップを表示したい。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    static NSString *CellIdentifier = @"Cell1";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];


    }

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    MapColumns *mc=(MapColumns *)[appDelegate.outputArray objectAtIndex:indexPath.row];

    cell.textLabel.text=mc.Title;
    cell.accessoryType=UITableViewCellAccessoryDetailDisclosureButton;
   return cell;

}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    MapView *mv=[[MapView alloc]initWithNibName:@"MapView" bundle:nil];
    [self.navigationController pushViewController:mv animated:YES];
}
4

1 に答える 1

1

マップのタイトルの設定に関してはtitle、MapView ビュー コントローラーを でインスタンス化するときに、そのプロパティを設定できますdidSelectRowAtIndexPath:。で行ったのと同じ方法で、appDelegate の outputArray に再度アクセスして、タイトルの値を取得しますcellForRowAtIndexPath:

MapColumns オブジェクトを MapView ビュー コントローラー クラスに渡す方法も必要です。これを行うには、MapView クラスにプロパティを作成し、MapView オブジェクトをそのプロパティに割り当ててから呼び出します。pushViewController:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MapView *mv = [[MapView alloc]initWithNibName:@"MapView" bundle:nil];

    MapColumns *mc = (MapColumns *)[appDelegate.outputArray objectAtIndex:indexPath.row];
    mv.title = mc.Title;

    mv.mapColumns = mc;  // set this property here you you can access the MapColumns object in your MapView view controller

    [self.navigationController pushViewController:mv animated:YES];
}

次に、MapView のviewDidLoadメソッドで、mapColumns設定したプロパティの値を使用して緯度と経度を取得し、マップを適切に構成します。

マップをセットアップして注釈を表示する方法がわからない場合は、Apple のLocation Awareness Programming Guideを読むことから始めてください。

MapKit の別の便利なチュートリアルは、こちらにあります

于 2012-08-31T20:26:47.610 に答える