2017-04-03 80 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

謝謝保羅,我正在尋找確認。 –

相關問題