我知道可以将自定义视图控制器类附加到故事板上的几个不同的视图控制器,但是可以在另一个方向上完成;也就是说,根据具体情况,我想将不同的自定义类绑定到故事板上的单个视图控制器,该控制器将使用以下方法实例化:
[self.storyboard instantiateViewControllerWithIdentifier:]
背景:我曾经在故事板上有几个视图控制器几乎相同.实际上,它们各自绑定的自定义类也非常相似.为了清理它,我将自定义类重构为一个基类和几个子类.然后我从故事板中删除了所有类似的视图控制器,只剩下一个我已经绑定到我的基类.然后我打电话给:
MySubclass* mySubclass = [self.storyboard instantiateViewControllerWithIdentifier:@"StoryboardControllerBoundToBaseClass"];
不幸的是,我的子类代码被忽略了,只运行了基类代码.有没有人知道如何在不重复故事板上的视图控制器并将每个视图控制器绑定到不同的子类的情况下使其工作?
解决方法
这是不可能的.只是因为你说MySubclass * object =某些东西并没有神奇地将对象转换为MySubclass对象.它存储在故事板中,包含在故事板编译时分配的任何类.