Как загрузить другое представление в зависимости от того, какая ячейка табличного представления была нажата - PullRequest
0 голосов
/ 07 октября 2011

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

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell.textLabel.text == @"Area")
    {
        ThirdViewController *tvController = [[ThirdViewController alloc] initWithNibName:@"ThirdView" bundle:nil];
        [self.navigationController pushViewController:tvController animated:YES];
    }
}

обратите внимание, что я импортировал файл 'thirdviewcontroller.h' в файл реализации, в котором находится код.

Я все еще привыкаю к ​​кодированию с помощью obj-c и Xcode,поэтому, пожалуйста, извините, если я попробовал что-то совершенно глупое / глупое.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, чтобы мой вопрос не был закрыт.

Я также искал вокруг, но ничего, что я нашел, не кажется мне полезным.

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Вы почти сделали это. Для сравнения теста нужно использовать:

[cell.textLabel.text isEqualToString:@"Area"]

Однако лучше полагаться на indexPath, чем на textLabel.

Также не забудьте выпустить tvController.

0 голосов
/ 07 октября 2011

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

Хорошо, сделайте что-то вроде этого:

if ( [listOfItems objectAtIndex:indexPath.row] == someStatement)
{
    YourVC = [[CustomViewController alloc] init];

    self.YourVc.dismissDelegate = self;

    UINavigationController *navController = [[UINavigationController alloc]
                                               initWithRootViewController:self.YourVc];

    navController.modalPresentationStyle = UIModalPresentationFormSheet; //or any of the other presentationstyles.

    [self presentModalViewController:navController animated:YES];

    [self.addTableViewController release];
    [navController release];
}

Это заставит новый viewcontroller появиться на основе вашего выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...