UITableView 在滚动中,在 UINavigationController 内部不能 pushViewController

Posted

技术标签:

【中文标题】UITableView 在滚动中,在 UINavigationController 内部不能 pushViewController【英文标题】:UITableView inside a scroll, inside of a UINavigationController can't pushViewController 【发布时间】:2015-11-09 03:41:04 【问题描述】:

我有一个 UINavigationController。它有它的主视图控制器,它包含一个滚动视图,然后是其中的 2 个表视图和一个按钮。如果我在点击时将按钮设置为 pushViewController,则效果很好。如果我在 didSelectRow 上将任一表视图设置为 pushViewController,则不会发生任何事情。我通过让 tableViews 在点击时打印 self.navigationController 进行测试,并且打印为零,所以我知道由于某种原因它没有正确继承导航控制器。

这很快。我可以让这个工作正常,在 ObjC 中以完全相同的方式没问题。

【问题讨论】:

【参考方案1】:

你可以覆盖tableview的功能

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
    let YourVC = YourViewController();
    YourVC.data = self.data[indexPath.section][indexPath.row];
    self.navigationController?.pushViewController(YourVC, animated: true);

【讨论】:

以上是关于UITableView 在滚动中,在 UINavigationController 内部不能 pushViewController的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableView 中向上滚动一页

在 UITableView 中滚动到 UISearchBar 的顶部

在 UITableviewCell (ios7) 中嵌入的 UITableView 中滚动

水平滚动 UITableView 的奇怪行为(在 Monotouch 中)

UITableView 在水平滚动后不会响应点击

在 iOS7 中滚动 UITableView