我有一个应用程序,结构如下所示。
在这里,我为表视图添加了一个导航控制器,并尝试将其保留为根视图控制器。另外,我尝试将我的第一个视图控制器作为根视图文件夹。
错误信息是:
*终止应用程序由于非正常异常'NSGenericException',原因:‘找不到一个导航控制器为segue 'TicketDetailSegue’。只有当源控制器由UINavigationController的实例管理时,才能使用Push segues。‘*第一次抛出调用堆栈:
下面是我在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不能是初始控制器。有人能提出解决办法吗?任何帮助都是非常感谢的。
发布于 2013-12-01 23:45:42
问题是,您呈现的控制器(使用您发布的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];
}https://stackoverflow.com/questions/20315803
复制相似问题