2016-12-21 47 views
0

我有一個變量idTransportTypeFirstTableViewController如何從另一個類的方法獲取變量的實際值?

在本課中,我更改了idTransportType一些時間,上次我在cellForRowAt indexPath中調用它。

所以,我有另一個類RouteAction,我需要調用idTransportType它與在我的第一堂課cellForRowAt indexPath實際(不爲0)值 - FirstTableViewController。當我在另一班級的方法中調用它時,我看到idTransportType = 0,但實際值不是0.

我的錯誤在哪裏以及如何獲得實際值?

upd。在另一個類中的呼叫代碼:

class RouteAction { 

    class func workingWithAnoterClass() { 

     let callVC = FirstTableViewController() 
     var getidTransportTypeFromAnotherClass = callVC.idTransportType 
     print(getidTransportTypeFromAnotherClass) 
    } 

} 
+0

您可以發佈代碼,在其他類中調用此屬性的位置? –

+2

你有'RouteAction'類中的當前'FirstTableViewController'實例嗎?看起來你創建了新的'FirstTableViewController',所以它會給你默認的那個變量值 – Tj3n

+0

也許你在調用'FirstTableViewController'的構造函數後訪問它,並且這個調用使得這個值默認爲'0' – Mehmood

回答

2

問題是您初始化該類的新實例,而不是使用當前的實例。你應該使用這樣的:

class RouteAction { 
    class func workingWithAnoterClass(firstTableVC: FirstTableViewController) { 

     var getidTransportTypeFromAnotherClass = firstTableVC.idTransportType 
     print(getidTransportTypeFromAnotherClass) 
    } 
} 

而且地方FirstTableViewController你應該調用下面:

RouteAction.workingWithAnotherClass(firstTableVC: self) 
+0

是的!它真的很有用!謝謝! –

+0

@VadimNikolaev歡迎您! –

0

也許試圖讓過去的視圖控制器,而不是創建一個新的,就像這樣:

class RouteAction { 

    func getCurrentViewController() -> UIViewController { 
     var currentViewController = UIApplication.sharedApplication().delegate!.window!!.rootViewController! 
     while (currentViewController.presentedViewController != nil) { 
      currentViewController = currentViewController.presentedViewController! 
     } 
     return currentViewController ViewController 
    } 

    class func workingWithAnoterClass() { 

     let callVC = getCurrentViewController() 
     var getidTransportTypeFromAnotherClass = callVC.idTransportType 
     print(getidTransportTypeFromAnotherClass) 
    } 

} 
相關問題