Вопрос

я работаю с SWRevealViewController иметь боковое меню в приложении.Он работает, как и ожидалось, из бокового меню на контроллере.Теперь я хотел бы использовать SWRevealViewController снова с одного контроллера на другой (оба UITableViewController).

Из бокового меню к контроллеру 1 и контроллеру 2:

enter image description here

Это то, что я пытался сделать до сих пор:

Настройте Real View Controller Segue от Интерфейсного Разработчика ко второму Контроллеру с помощью identifier "articlesSegue".

И в первом контроллере я использую didSelectRowAtIndexPath и prepareForSegue чтобы показать второй контроллер:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Set selected issue to var
    _selectedIssue = _feedItems[indexPath.row];

    // Manually call segue to detail view controller
    [self performSegueWithIdentifier:@"articlesSegue" sender:self];
}

#pragma mark Segue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get reference to the destination view controller
    TableViewController *tableVC = segue.destinationViewController;

    // data used in the second Controller
    tableVC.self.type = @"category";
    tableVC.self.data = [_selectedIssue.ID stringValue];
}

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

enter image description here

Я протестировал это с помощью Push Segue, и это сработало, но я все же предпочитаю его работе с SWRevealViewController.

Я нашел этот вопрос, но я не совсем уверен, как его нужно реализовать, SWRevealViewController – вручную переключиться на другой вид?.

Это было полезно?

Решение

Как объяснил @Anbu.Kathik, я не мог использовать SWReveal переехать из Controller другому Controller.Я решил это, используя то же самое TableViewController, я добавил свойство type чтобы проверить, какое из представлений является текущим, и просто обновить таблицу, когда элемент выбран didSelectRowAtIndexPath.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // check type of current tableview - if category display article
    if ([self.type isEqualToString:@"category"]) {
        // display single article
        _selectedArticle = _feedItems[indexPath.row];
        [self performSegueWithIdentifier:@"detailSegue" sender:self];
    }
    else {
        // else if issue display list of articles on the same TableViewController
        _selectedIssue = _feedItems[indexPath.row];
        self.type = @"category";
        self.data = [_selectedIssue.ID stringValue];
        [_homeModel downloadItems:self.type :self.data];
    }
}

С использованием [self.tableView reloadData] перезагружает таблицу новыми данными.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top