我正在与 SWRevealViewController 在应用程序上有一个侧面菜单。从侧面菜单到控制器,它按预期工作。我现在想做的是使用 SWRevealViewController 再次从一个控制器到另一个控制器(两者 UITableViewController).

从侧面菜单到控制器 1 到控制器 2:

enter image description here

到目前为止,这是我尝试做的事情:

设置 Real View Controller Segue 从 Interface Builder 到第二个控制器 identifier "articlesSegue".

在我使用的第一个控制器中 didSelectRowAtIndexPathprepareForSegue 显示第二个控制器:

- (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