我有一个segue(称为"ToSettingsSegue"
),它将自定义视图控制器(SettingsTableViewController
)推送到UINavigationController
的堆栈上。SettingsTableViewController
已经建立了原型细胞("prototypeSliderCell"
)。不用说,这是在故事板中设置的。
另一段代码以编程方式将SettingsTableViewController
推送到UINavigationController
的堆栈上。在SettingTableViewController
的-tableView:cellForRowAtIndexPath:
方法中,当以编程方式执行此操作时,-dequeueResusableCellWithIdentifier:
返回nil。
我认为这是由于原型单元无法通过编程获得。
我的解决方法?调用CCD_ 11并发送CCD_ 12和self。
这个问题有更好的解决办法吗?我忍不住觉得这太脏了。
当您在代码中实例化SettingsTableViewController而不是通过情节提要分段实例化时,原型单元格定义不可用,因为它只在情节提要中定义。
你描述的"变通方法"应该很好用,我看不出它有什么不好的地方。在很多情况下,你会想通过编程触发故事板片段,而这正是performSegueWithIdentifier:sender:
的设计初衷。