2016-12-15 37 views
0

我有一個項目中,我需要登錄一個分析事件,只要任何視圖控制器(日誌查看器的名稱)來在屏幕上記錄每個視圖控制器的名字。添加分析事件在項目

我試圖避免與調用分析SDK亂扔現有的所有視圖控制器類。

我試圖使一個AnalyticsViewController和我所有的視圖控制器將繼承這個視圖控制器,然後我在AnalyticsViewController類的viewDidLoad方法添加分析事件。但是這種方法的問題在於,AnalyticsViewController並不是來自哪個子視圖控制器。

我使用雨燕3.0。我相信Swift具有強大的語言特性應該能夠爲我提供某種抽象。

有沒有辦法通過這個問題而不拋棄所有的視圖控制器?

回答

0

你在正確的軌道上。製作一個UIViewController父類是個好主意。

在viewDidLoad方法你可以補充一點:

let className = NSStringFromClass(self.classForCoder) 

它會給你當前加載視圖控制器的名稱,然後你可以使用該名稱在您的活動指定哪些瀏覽器實際上是加載。

編輯:添加例子。 所以你父母的viewDidLoad看起來像這樣:

override func viewDidLoad() { 
    super.viewDidLoad() 

    let className = NSStringFromClass(self.classForCoder) 
    sendEvent(withViewControllerName: className) 
}