Вызовите UIViewController из "subview" - PullRequest
1 голос
/ 10 мая 2009

У меня есть 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];
    }

Я пытаюсь изменить представление на подробное представление на основе выбора строки в табличном представлении, и я не могу понять, как ее вызвать. Все методы, которые у меня есть, кажутся неудачными! Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 10 мая 2009

Добавьте протокол UITableViewDelegate к вашему классу контроллера.

@interface myTableViewController : UITableViewController <UITableViewDelegate>

Когда вы создаете свой настольный контроллер, установите его делегатом ваш контроллер, используя:

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.
0 голосов
/ 10 мая 2009

Класс, который вы должны посмотреть для обработки выбора строки, - это UITableViewDelegate, который имеет метод:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...