导航控制器不推送另一个视图

Posted

技术标签:

【中文标题】导航控制器不推送另一个视图【英文标题】:Navigation controller not pushing another view 【发布时间】:2015-10-06 11:10:12 【问题描述】:

我有一个表格视图,在选择单元格表格视图中,我放置了以下代码来推送控制器。代码如下,但在这里不起作用:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
    println("You selected cell #\(indexPath.row)!")
    let second: SecondViewController = SecondViewController()
    let navigat = UINavigationController()
    navigat.pushViewController(second, animated: true)


【问题讨论】:

【参考方案1】:

这绝对行不通!

您正在创建一个新的UINavigationController 对象并尝试将您的SecondViewController 推入其中。最终没有任何东西被添加到可见视图层次结构中,即在您的视图控制器之上。

不要实例化一个新的UINavigationController 对象,试试这个:

self.navigationController?.pushViewController(secondViewController, animated: true)

PS:为了更好的命名约定,我将second替换为secondViewController

【讨论】:

感谢它的工作,但问题是我感觉有些卡在推动...此外它显示黑屏而不是我给出的红色 这是一个与您处理视图控制器的方式不同的问题。检查目标视图控制器的实现。我建议的是推送新视图控制器的标准方法。除此之外,如果您在 pushes VC 中看到一些问题,可能需要更多详细信息来解决它!

以上是关于导航控制器不推送另一个视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在推送通知中导航到另一个视图控制器

在没有导航控制器的情况下导航到另一个视图控制器

推送视图控制器中的半透明导航栏覆盖?

在具有交互式过渡的导航控制器中推送视图控制器

推送导航控制器堆栈后视图不显示

导航推送视图控制器不起作用