UIViewController 无法重定向

Posted

技术标签:

【中文标题】UIViewController 无法重定向【英文标题】:UIViewController Not able to redirect 【发布时间】:2014-03-11 13:38:15 【问题描述】:

这是我的问题。我有一个嵌入 UINavigation 控制器的 UITableViewcontroller。对于 UITableviewController 我有添加屏幕和编辑屏幕。添加屏幕工作正常。当我单击表格视图单元格上的记录时,它能够重定向到编辑页面(详细视图)。当我点击提交按钮时,页面没有导航到 tableview 单元格。这是以下错误。

警告:尝试呈现不在窗口层次结构中的视图!

这是我尝试导航的代码。

UINavigationController *questionnaireNavController = [self.storyboard instantiateViewControllerWithIdentifier:@"DLProjectsTasksubtasks"];
        [questionnaireNavController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
        DLProjectsTasksubtasks *qvc = (DLProjectsTasksubtasks *)[questionnaireNavController topViewController];

        [qvc.tableView reloadData];
        [self presentViewController:questionnaireNavController animated:YES completion:nil];
        [self dismissViewControllerAnimated:YES completion:nil];

在我使用 Segue 将数据从 tableview 数据传输到编辑屏幕之间

【问题讨论】:

为什么你在展示后立即关闭viewController? 即使我删除了关闭代码也无法重定向 我不确定你想要达到什么目的?您无需等待present 完成即可立即展示和解雇。这肯定会给你一个错误。 Sami 我已经从中删除了解除代码,即使它无法重定向 再次查看您的故事板。可能没有任何用于问卷调查NavController 的顶视图控制器。 【参考方案1】:

我认为您的 segue 被推送到导航控制器上,而不是模态显示。所以你有两个选择,要么将故事板中的 segue 更改为模态并使用 dismissViewControllerAnimated:YES completion:,要么保持原样并在导航控制器上使用 popViewControllerAnimated:

[self.navigationController popViewControllerAnimated:YES];

为了将数据传递到前一页,您可以传递前一个视图控制器的引用或通过您的navigationController.viewControllers 访问它。索引 n-2 将是您以前的视图控制器(n 是视图控制器的数量)。

【讨论】:

我试图将数据也传递到该页面萨米 到上一页? 是的,根据我试图在 tableview 中显示的 projectid 如果我将 segue 更改为模式,它会给我一些错误并使应用程序崩溃 当我将 segue 更改为 Modal 以下是以下错误应用程序试图以模态方式呈现活动控制器

以上是关于UIViewController 无法重定向的主要内容,如果未能解决你的问题,请参考以下文章

集合视图单元格重定向不同的 ViewController

grails无法在此处发出重定向(..)。当url参数包含尖括号时,先前调用重定向(..)

无法在发送 HTTP 标头之后进行重定向

exe文件的输出内容无法重定向到winform窗口中

无法移除 301 重定向

登录后无法重定向