Xcode 7 Swift 2无法实例化通用UITableViewController的UIViewController子类
我有一个generics类:
class PaginatedTableViewController <GenericElement, Source: PaginationDataSource where Source.PaginatedGenericElement == GenericElement>: UITableViewController
另一个我试图从故事板实例化:
class CandidatesTableViewController: PaginatedTableViewController<Match, MatchPaginationDataSource>
我无法在故事板自定义类下拉菜单中findCandidatesTableViewController
。 如果我强制它,然后在代码中投我的控制器,应用程序崩溃在运行时抱怨我的控制器(这应该是一个CandidatesTableViewController实例)实际上是一个UITableViewController实例。
未知类_TtC21MyProjectName29CandidatesTableViewController在Interface Builder文件中。 无法将types'UITableViewController'(0x1040917f8)的值转换为“MyProjectName.CandidatesTableViewController”(0x1013a9890)。
在我的项目中,这个控制器被embedded到另一个中,
tableViewController = (segue.destinationViewController as! CandidatesTableViewController)
有谁知道如何解决这个问题?
不幸的是,通用的Swift类对Objective-C代码是不可见的,而且在Interface Builder(故事板和xibs)中也不支持。 我觉得这两点密切相关。
作为一个解决scheme,我build议你使用聚合:不要让你看到控制器通用,但提取一些逻辑到另一个(通用)类,并在您的视图控制器中使用它。
如果您手动通过load()
方法(即调用load()
手动将通用VC加载到Objective-C运行库中,则可能是这样。 PaginatedTableViewController.load()
在您的应用程序委托的init方法中。 从https://stackoverflow.com/a/43896830/671580的想法
- 暂停SpriteKit游戏 – UIApplicationWillResignActive与UIApplicationDidBecomeActive?
- Spritekit – 不从SKTextureAtlas加载@ 3x图片
- 带拐angular半径和阴影的SWIFT UITableViewCell
- 调用可以抛出,但没有用'try'标记,错误不被处理:NSRegularExpression
- 为视网膜显示创build一个具有抗锯齿function的圆形或圆盘
- 简单的隧道构build失败 – NEAppProxyErrorDomain
- 在SpriteKit的SKScene和SKSpriteNode中接收触摸事件
- 成员'下标'在词典中的歧义引用
- Swift:从精灵套件SKShapeNode绘图中检测交集