发起`推导航控制器推赛格瑞结果不支持`
问题描述:
在我UITableView
,当用户点击一个细胞我发起赛格瑞像这样:发起`推导航控制器推赛格瑞结果不支持`
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"MCExpandedSegue" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"MCExpandedSegue"]){
// Opens item in browser
MCExpandedViewController *controller = (MCExpandedViewController *) segue.destinationViewController;
}
}
为了目标视图控制器(MCExpandedViewController
)有一个导航栏和后退按钮,我已经嵌入它的导航控制器,像这样:
然而,在攻表中的单元格,以使这个SEGUE,我明白了以下错误:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing a navigation controller is not supported'
。这是因为它试图延续到MCExpandedViewController,但因为它包含在导航控制器中而被绊倒了?我怎样才能正确地使用这个segue?
答
- 删除
the navigation controller
和直接原因请看MCExpandedViewController
。 -
一下添加到viewWillAppear中:在
MCExpandedViewController.m
[self.navigationController setNavigationBarHidden:NO animated:YES];
答
首先确保您的第一个视图控制器嵌入导航控制器。 MatchCenterViewController在导航控制器中。 不同场景中不需要另一个导航控制器。
是'MatchCenterViewController'已经是'UINavigationController'里面?如果是这样的话,你可以尝试删除中间的'UINavigationController'并将segue直接添加到'ExpandedViewController'?您可以通过访问嵌入在导航控制器中的任何视图控制器内的'self.navigationController'来控制导航控制器的外观。 –