我有一个 segue(称为 "ToSettingsSegue"
),它将自定义 View Controller (SettingsTableViewController
) 推送到 UINavigationController
的堆栈上。 SettingsTableViewController
设置了原型(prototype)单元格 ("prototypeSliderCell"
)。不用说,这是在 Storyboard中设置的。
另一段代码以编程方式将 SettingsTableViewController
推送到 UINavigationController
的堆栈上。在 SettingTableViewController
的 -tableView:cellForRowAtIndexPath:
方法中,-dequeueResusableCellWithIdentifier:
以编程方式完成时返回 nil。
我假设这是由于无法以编程方式提供原型(prototype)单元而发生的。
我的解决方法?调用 -perfromeSegueWithIdentifier:sender:
并发送 "ToSettingsSegue"
和 self。
这个问题有更好的解决方案吗?我不禁觉得这很脏。
最佳答案
当您在代码中而不是通过 Storyboard segue 实例化 SettingsTableViewController 时,原型(prototype)单元格定义不可用,因为它仅在您的 Storyboard中定义。
您描述的“解决方法”应该可以正常工作,而且我看不出有什么不妥之处。在许多情况下,您会希望以编程方式触发 Storyboard转场发生,而这正是 performSegueWithIdentifier:sender:
旨在处理的问题。
关于iphone - 自定义 UITableViewController 的编程实例化以及使用 Storyboard 创建的单元格原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9866198/