TableView 未从另一个 tableview 中的 didselectRowAtindexPath 加载
Posted
技术标签:
【中文标题】TableView 未从另一个 tableview 中的 didselectRowAtindexPath 加载【英文标题】:TableView Not loading from didselectRowAtindexPath in another tableview 【发布时间】:2016-04-04 08:25:17 【问题描述】:我正在使用 swift 2.2 和 xcode 7.3 。当单击一行时,我试图从另一个表视图加载表视图。在
didSelectRowAtIndexPath
在第一个表视图中,我创建了另一个表视图类的实例并使用 pushViewController 调用它。但是表格视图没有被加载并且屏幕保持不变。我的代码是
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
NSLog("It did enter the didselectRowAtIndexPath")
if (indexPath.section == 0)
let enrolledView = DetailsViewController()
navigationController?.pushViewController(enrolledView, animated: true)
if (indexPath.section == 1)
let appcatalog = AppCatalogViewController()
navigationController?.pushViewController(appcatalog, animated: true)
if (indexPath.section == 2)
let support = supportViewController()
navigationController?.pushViewController(support, animated: true)
注意:“它确实进入了 didselectRowAtIndexPath”被打印在日志中。所以如果有什么不正确的地方,请告诉我。
【问题讨论】:
你分配tableView的委托了吗? 你能告诉我们吗?你是如何创建注册视图、appcatalog、支持控制器的 还要确保你当前的 ViewController 是嵌入在导航控制器中的,因为你正在推送导航视图控制器 从这个意义上说?你能说清楚一点吗? 我没有使用故事板 为什么不使用故事板?他们是不错! 【参考方案1】:你能给我们更多的代码吗?
例如,您是如何将您的类嵌入到导航控制器中的?
因为如果没有出现,可能是因为 navigationController 为 nil
【讨论】:
【参考方案2】:我认为你的代码中有两个错误。
第一个:
您尚未将控制器嵌入到 UINavigation 控制器中。
第二个:
在您可以移动到它之前,您没有启动您的视图控制器。首先为每个视图控制器分配一个故事板标识符。因此,将您的代码更改为:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
NSLog("It did enter the didselectRowAtIndexPath")
if (indexPath.section == 0)
let enrolledView = self.storyboard?.instantiateViewControllerWithIdentifier("identifier of your DetailsViewController")
navigationController?.pushViewController(enrolledView, animated: true)
if (indexPath.section == 1)
let appcatalog = self.storyboard?.instantiateViewControllerWithIdentifier("identifier of your AppCatalogViewController")
navigationController?.pushViewController(appcatalog, animated: true)
if (indexPath.section == 2)
let support = self.storyboard?.instantiateViewControllerWithIdentifier("identifier of your supportViewController")
navigationController?.pushViewController(support, animated: true)
【讨论】:
是的。我还没有嵌入它..并且像你说的那样更改代码也会解决这个问题吗? 我刚刚在上面看到您没有使用情节提要?你在用 XIB 的吗? 如果您使用的是 XIB,则将 nib 文件加载为 let registeredViewArray = NSBundle.mainBundle().loadNibNamed("myXib", owner: self, options: nil) let loggedView = loggedViewArray[0] navigationController ?.pushViewController(enrolledView, 动画: true) 我猜我没有使用 XIB .. 关键是,我已经创建了单独的表视图控制器,并且希望在单击另一个中的一行时加载一个。而且我不知道该怎么做。所以你能告诉我在不使用故事板时需要做的事情吗? 您是否以编程方式创建了 tableViewController??以上是关于TableView 未从另一个 tableview 中的 didselectRowAtindexPath 加载的主要内容,如果未能解决你的问题,请参考以下文章
无法从另一个 tableview 加载另一个 tableView
Swift - 从另一个 ViewController 在 TableView 中插入项目