如何从另一个类的方法获取变量的实际值?

时间:2016-12-21 10:34:40

标签: ios swift3

我在idTransportType中有一个变量FirstTableViewController

在这个课程中,我有时会更改idTransportType,上次我会在cellForRowAt indexPath中调用它。

所以,我有另一个课程RouteAction,我需要在其中使用实际(非0)值调用idTransportType,该值位于我的第一个cellForRowAt indexPath class - FirstTableViewController。当我在另一个班级的方法中调用它时,我看到idTransportType = 0,但实际值不是0。

我的错误在哪里以及如何获得实际价值?

UPD。在另一个班级中调用的代码:

class RouteAction {

    class func workingWithAnoterClass()  {

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

}

2 个答案:

答案 0 :(得分:2)

问题是您初始化该类的新实例,而不是使用当前的实例。你应该像这样使用它:

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

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

在某处FirstTableViewController,您应该拨打以下电话:

RouteAction.workingWithAnotherClass(firstTableVC: self)

答案 1 :(得分: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)
    }

}