设计:UITabViewController

时间:2016-10-15 17:54:40

标签: ios

好的,所以标题不是很清楚 - 抱歉,我无法找到一个好方法来表达我想要完成的事情。

所以这是我的设置 - 我有一个抽象的CoreData类,称之为Parentnamephoto。然后,我从Child1继承了Child2Parent 我希望UITabViewController有2个标签:Child1Child2,每个标签的UIViewController都会有UITableView来显示namephoto(因此只是抽象基类中的属性)。

这样做的最佳方法是什么? " Easy"这样做的方法就是忽略抽象基类,为UIViewController标签创建2个不同的UITabViewController,每个标签都有NSFetchedResultsController,并且有很多重复的代码。 /> 但必须才能更好地解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人来说,这就是我最终要做的事情 我有Parent抽象基类及其2个子类Child1Child2 我创建了一个通用UIViewController,用于保存名为Parent的{​​{1}}实体:

ParentUIViewController

然后我创建了另外两个var entity: String { get { return "Parent" } } let context = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext lazy var fetchedResultsController: NSFetchedResultsController<ListObject> = { let fetchRequest = NSFetchRequest<Parent>(entityName: self.entity) let sort = NSSortDescriptor(key: "name", ascending: true) fetchRequest.sortDescriptors = [sort] let frc = NSFetchedResultsController( fetchRequest: fetchRequest, managedObjectContext: self.context, sectionNameKeyPath: nil, cacheName: nil) frc.delegate = self return frc }() override func viewDidLoad() { super.viewDidLoad() // do stuff with fetchedResultController // fetchedResultsController.object(atIndex: IndexPath) has a "name" and "photo" attribute so I use them } ,而我所要做的只是

UIViewController