2017-04-03 116 views
0

我想要一个视图控制器的子类,其中superClass和subClass在两个独立的故事板。 superClass通过故事板连接IBOutlets,子类也是相同的。从多个故事板子类化一个UIViewController

问题: 是否可以创建子类,以便在故事板中使用超类的IBOutlet连接? (AKA的IBOutlets是不是nil,和awakeFromNib称)

设置:

超类是使用BaseViewController与BaseStoryboard一个IBOutlet UIView的属性baseContainerView。

子类是使用SpecialViewController SpecialStoryboard

SpecialViewController从BaseViewController继承。

当前问题:

如果我实例SpecialViewController的实例,从它的故事板(SpecialStoryboard),当viewDidLoad中被调用时,就可以了containerView属性的超(BaseViewController)为零。是否有可能从Storyboard中加载SpecialViewController的超类(BaseViewController)?

回答

1

类支持继承,但场景不支持。

当您为视图控制器创建子类时,它继承了其超类中存在的任何出口,但这些出口需要在使用该子类的场景中明确指定一个值。

场景指定其视图控制器的类,但视图控制器类没有链接“回”到它使用它的场景。场景和视图控制器类之间存在“多对一”关系。如果你问的是可能的话,那么iOS怎么会知道你想从哪个场景中“继承”一个视图控制器?

仅仅因为超界定出口foo,你必须使用在一些场景中的超类,它并不意味着foo将有一定的价值,如果你使用,然后在不同的场景使用一个子类(不管是哪个故事板那些场景在)。您需要直接在使用子类的场景中将对象分配给foo

+0

谢谢保罗,我正在寻找确认。 –