2016-01-20 66 views
0

在我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)有一个导航栏和后退按钮,我已经嵌入它的导航控制器,像这样:

enter image description here

然而,在攻表中的单元格,以使这个SEGUE,我明白了以下错误:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing a navigation controller is not supported'。这是因为它试图延续到MCExpandedViewController,但因为它包含在导航控制器中而被绊倒了?我怎样才能正确地使用这个segue?

+1

是'MatchCenterViewController'已经是'UINavigationController'里面?如果是这样的话,你可以尝试删除中间的'UINavigationController'并将segue直接添加到'ExpandedViewController'?您可以通过访问嵌入在导航控制器中的任何视图控制器内的'self.navigationController'来控制导航控制器的外观。 –

回答

1
  1. 删除the navigation controller和直接原因请看 MCExpandedViewController
  2. 一下添加到viewWillAppear中:在MCExpandedViewController.m

    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
    
2

首先确保您的第一个视图控制器嵌入导航控制器。 MatchCenterViewController在导航控制器中。 不同场景中不需要另一个导航控制器。

相关问题