我在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)
}
}
答案 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)
}
}