2016-12-21 100 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) 
    } 

} 
相关问题