【问题标题】:UINavigationController errorUINavigationController 错误
【发布时间】:2013-12-01 18:45:28
【问题描述】:

我有一个应用程序,其结构如下。

  1. 首先,用户使用其凭据登录。
  2. 然后选择几个选择标准(例如:机票详情)
  3. 将出现一个表格视图并显示工单的简要详细信息。
  4. 基于选择的表格视图中的推送转场将显示详细视图。

在这里,我为表格视图添加了一个导航控制器,并尝试将其保留为根视图控制器。另外,我尝试将我的第一个视图控制器作为根视图文件夹。

错误信息是:

* 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“找不到用于 segue 'TicketDetailSegue' 的导航控制器。只有当源控制器由 UINavigationController 的实例管理时,才能使用推送 segue。 * 首先抛出调用栈:

以下是我在 Segue 上的代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([segue.identifier isEqualToString:@"TicketDetailSegue"]) {
    UITableViewCell *cell=(UITableViewCell *)sender;
    NSIndexPath *ip= [self.tableView indexPathForCell:cell];
    Ticket *T=[self.TicketsFinal objectAtIndex:ip.row];

    ViewFour *pdvc=(ViewFour *)segue.destinationViewController;
    pdvc.ticket=T;

}}

注意:我的 NavigationController 不能是初始控制器。有人可以提出解决方案吗?非常感谢任何帮助。

【问题讨论】:

  • “出现了一个表格视图”——你是如何让它出现的?您如何以及在何处添加导航控制器?为什么导航控制器不能成为初始控制器?
  • 您好,感谢您的回复。网站不允许我输入图片(因为我没有最低声誉)。请您将初始邮件发送至 dinesh.srd@gmail.com,我会在回复中向您解释我的问题。期待你的邮件。谢谢

标签: ios iphone objective-c


【解决方案1】:

问题在于您展示了作为导航控制器的根视图控制器的控制器(使用您发布的 prepareForSegue 方法的控制器),而不是展示了导航控制器本身,因此导航控制器不会使其进入您的控制器层次结构。您在 ViewTwo 中的提交方法应如下所示:

-(IBAction)Submit
{
    UINavigationController *nav =[self.storyboard instantiateViewControllerWithIdentifier:@"TicketsListNav"];
    TicketListViewController *third = (TicketListViewController *)nav.topViewController;
    // other stuff here
    [self presentViewController:nav animated:YES completion:nil];
}

【讨论】:

  • 非常感谢埃里克。它工作得很好。我想投票,但该网站限制至少 15 名声望才能投票。对于那个很抱歉。非常感谢您的及时帮助。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多