简单地说,我的应用程序中有一个幻灯片导航视图控制器,带有后台VC和前台VC。应该将后表VC中的所选单元划分到前表VC(嵌入在导航VC中)。为了说明,以下是隔离的更改前设置和代码,使其正常工作:
以下是我的后台VC cellForRowAtIndexPath
方法中的简化工作代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let navigationCell = tableView.dequeueReusableCellWithIdentifier("NavigationCell", forIndexPath: indexPath) as UITableViewCell
return navigationCell
}
好的,到有趣的部分。我想要的是用Xib文件中的一个自定义单元替换上面显示的默认UITableViewCell。现在我将说明我修改的内容。首先,这是我的NavigationCell.xib
文件中的Xib单元格。没什么特别的。
我的NavigationCell
班级代码只是
import UIKit
class NavigationCell: UITableViewCell {
@IBOutlet var nameLabel: UILabel!
}
最后,我修改了我的后台VC中的代码以注册Xib并将自定义单元格出列:
override func viewDidLoad() {
super.viewDidLoad()
let navigationCellNib = UINib(nibName: "NavigationCell", bundle: nil)
tableView.registerNib(navigationCellNib, forCellReuseIdentifier: "NavigationCell")
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let navigationCell = tableView.dequeueReusableCellWithIdentifier("NavigationCell", forIndexPath: indexPath) as! NavigationCell
return navigationCell
}
所有其他代码和规格保持不变。新自定义单元格的故事板segue仍然来自类SWRevealViewControllerSeguePushController
,如此问题的第一个屏幕截图所示。我只是用我的自定义Xib单元格替换了默认的UITableViewCell。
这种修改足以阻止segue的发生。通过这个修改,在我构建并运行后,当我滑出后台VC导航菜单并选择我的一个自定义导航单元(正确显示)时,它不会触发任何segue。有什么想法吗?