SWRevealViewController 从一个控制器到另一个控制器
-
21-12-2019 - |
题
我正在与 SWRevealViewController
在应用程序上有一个侧面菜单。从侧面菜单到控制器,它按预期工作。我现在想做的是使用 SWRevealViewController
再次从一个控制器到另一个控制器(两者 UITableViewController
).
从侧面菜单到控制器 1 到控制器 2:
到目前为止,这是我尝试做的事情:
设置 Real View Controller Segue
从 Interface Builder 到第二个控制器 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];
}
从列表中选择一个项目会显示为已选择,但没有任何反应。
我已经使用 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]
用新数据重新加载表。
不隶属于 StackOverflow