2016-07-06 94 views
2

我正在升級我的應用程序版本,因此需要將兩個視圖控制器減少到一個。因此,我打電話給第二個視圖控制器跳過第一個。但是在這裏我需要調用第一個視圖控制器的類,因爲有一些重要的聲明和實現。如何在不彈出其視圖控制器的情況下調用第一個視圖控制器的類。調用視圖控制器類而不彈出視圖控制器本身

回答

1

這很混亂。

爲什麼不從你的第一個VC(複製粘貼你的屬性,在viewDidLoad等初始化)到你的第二個VC的所有初始化代碼?

一旦你完成了,擺脫第一個VC,因爲它是無用的,並讓你的第二個視圖控制器的根。

一個ViewController的目的是「被視爲」,我建議你不要隱藏它,這是一個非常糟糕的架構。

+0

感謝@ H4Hugo,這是正確的,但只是好奇,如果有這樣的替代 – Sam

+0

@Sam你可以使'超類:UIViewController',執行所有共享功能,然後從它繼承你的視圖控制器 –

1

如果您根本不需要一個視圖控制器,那麼您可以從storyBoard中刪除該視圖控制器,並且還可以將您的類作爲NSObject類(讓它稱爲DataProviderClass)而不是先前的(UIViewController)子類繼承。在導航堆棧中使用「虛擬」視圖控制器並不是一個好主意。

您可以使用您的DataProviderClass類作爲支持文件,它可以向您的第二視圖控制器提供任何數據。並且要在啓動第二個VC之前執行此類中的計算/方法,只需在viewdidLoad方法中通過創建此NSObject類的一個實例(DataProviderClass)並保存對它的引用來運行這些方法。

當你繼續進一步,你甚至可以很容易地轉移相同的參考DataProviderClass

相關問題