无法从另一个 tableview 加载另一个 tableView
Posted
技术标签:
【中文标题】无法从另一个 tableview 加载另一个 tableView【英文标题】:Not able to load another tableView from another tableview 【发布时间】:2016-04-05 06:35:18 【问题描述】:我设计了一个基本上有一个 tableview 有一个 rootView 的应用程序,然后打算根据在根视图控制器上单击的行来加载三个控制器(2 个 tableview 和 1 个视图控制器)。我已经从根视图控制器向所有三个视图添加了当前模态segue。但视图没有被加载。我没有在视图之间传递任何数据。只加载视图。我试图加载视图的代码是
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
NSLog("It did enter the didselectRowAtIndexPath")
if (indexPath.section == 0)
func prepareForSegue(segue : UIStoryboardSegue , sender : AnyObject?)
segue.destinationViewController as? DetailsViewController
NSLog("Loading Details view controller")
if (indexPath.section == 1)
func prepareForSegue(segue : UIStoryboardSegue , sender : AnyObject?)
segue.destinationViewController as? AppCatalogViewController
NSLog("Loading AppCatalog view controller")
if (indexPath.section == 2)
func prepareForSegue(segue : UIStoryboardSegue , sender : AnyObject?)
segue.destinationViewController as? supportViewController
NSLog("Loading support view controller")
注意:“它确实进入了 didSelectRowAtindexPath”会打印在日志中。! 谁能指导我应该做什么?提前谢谢你..
【问题讨论】:
【参考方案1】:使用 performSegueWithIdentifier:prepareForSegue 在执行 segue 之前执行,而不是 prepareForSegue,它用于设置要呈现的视图控制器。
【讨论】:
当我尝试这样做时,应用程序崩溃并出现错误,即它没有名为“-theseguename-”的segues,尽管我正确命名了segues ..在我再次交叉检查名称之前,是还有什么可能会产生这个错误吗? @ManeeshSharma 你在哪里命名segue?你是从视图控制器还是从表格视图单元拖动segue? 在 Stortyboard 的属性检查器中将其命名为 .. 并将其从视图控制器中拖动,而不是从表格视图单元格中拖动。 我有必要push segue什么的吗??或者我有没有可能不做一些可能很重要的事情? 阅读this,尝试使用其他模拟器重新运行【参考方案2】:use performSegueWithIdentifier
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
NSLog("It did enter the didselectRowAtIndexPath")
if (indexPath.section == 0)
self.performSegueWithIdentifier("IdentifierName", sender: sender)
else if (indexPath.section == 1)
self.performSegueWithIdentifier("IdentifierName", sender: sender)
else if (indexPath.section == 2)
self.performSegueWithIdentifier("IdentifierName", sender: sender)
prepareForSegue 在 UIViewController 类中定义,该方法的默认实现什么也不做。它要求所有的segues。 如果你愿意,你可以覆盖它。
【讨论】:
sahil ,当我尝试这样做时,应用程序崩溃并出现错误,即它没有名为“-theseguename-”的segues,尽管我正确命名了segues ..在我再次交叉检查名称之前,还有什么可能会产生这个错误吗? 故事板中的名称以及 didSelectRowAtIndex 方法中的名称相同。 你需要通过拖拽来继续。此链接将清除您的一切。 developer.apple.com/library/ios/featuredarticles/… 我拖拽并连接了一个当前的模态segue,在属性检查器中也正确提到了类名,清理了应用程序,然后执行,错误仍然存在 您需要点击 segue 对象,然后在属性检查器中添加标识符。以上是关于无法从另一个 tableview 加载另一个 tableView的主要内容,如果未能解决你的问题,请参考以下文章
从另一个视图控制器添加单元格时 UITableViewCell 的内容不可见