1

私はそれがロードされるときにこれをロードするUIViewControllerを持っています。

MapViewController *mapController = [[MapViewController alloc] initWithNibName:@"MapView" bundle:nil];
    self.mapViewController = mapController;
    [self.view insertSubview:mapController.view atIndex:0];
    [mapController release];

テーブルビューに変更できるビューの切り替えボタンもあります。

if (self.tableViewController ==nil)
    {
        TableViewController *tableController = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil];
        self.tableViewController = tableController;
    [tableController release];
    //[self.view insertSubview:detailController atIndex:0];
    }

    if (self.mapViewController.view.superview == nil)
    {
        [tableViewController.view removeFromSuperview];
        [self.view insertSubview:mapViewController.view atIndex:0];
    }
    else
    {
        [mapViewController.view removeFromSuperview];
        [self.view insertSubview:tableViewController.view atIndex:0];
    }

テーブルビューで行を選択してビューを詳細ビューに変更しようとしていますが、呼び出し方法がまったくわかりません。私が持っているすべての方法は失敗するようです!助けてください!

4

2 に答える 2

0

行選択を処理するために確認する必要があるクラスはUITableViewDelegateで、次のメソッドがあります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
于 2009-05-10T08:50:30.030 に答える
0

UITableViewDelegateプロトコルをコントローラークラスに追加します。

@interface myTableViewController : UITableViewController <UITableViewDelegate>

テーブルを作成するとき、veiwコントローラーは、以下を使用してそのデリゲートをコントローラーに設定します。

myTableViewController.delegate = self; // Assuming your setup code runs within the table view controller

tableViewControllerで、didSelectRowAtIndexPathを実装します。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int rowSelected = [indexPath indexAtPosition:0]; // Assuming your UITableView has a single section.
于 2009-05-10T09:04:36.830 に答える