我正在尝试选择并设置一个属于另一个UIViewController的实例变量,但是,我不知道如何选择另一个ViewController并在不使用segue的情况下访问其内容。
每当用户检查任务时,应计算完成的一部分任务,并设置另一个视图控制器的实例变量。
我意识到我正在实例化一个新的视图控制器,而不是选择我在故事板上已有的视图控制器。我正在使用位于主视图后面的第三方侧边栏菜单,尽管它实际上是作为单独的Scene / ViewController存在的。应该注意的是,这个侧边栏菜单不使用segue显示本身。有没有方法可以选择另一个视图控制器并访问它的实例变量?
@IBAction func checkOffTask(sender: UIButton) {
// Select sidebar view controller
let sidebarViewController = self.storyboard?.instantiateViewControllerWithIdentifier("sideBarScene") as! SideBarViewController
// Calculate percentage of completed tasks
// Select the count of all tasks
let allTasksCount = Float(firstDataSource.count + secondDataSource.count)
// Select the count of all completed tasks
let completedTasksCount = Float(secondDataSource.count)
// Divide the two to get a percentage
var completedTaskPercentage = completedTasksCount / allTasksCount
sidebarViewController.completedTaskPercentageTemporary = String(stringInterpolationSegment: completedTaskPercentage)
println(sidebarViewController)
println(sidebarViewController.completedTaskPercentageTemporary)
}
答案 0 :(得分:0)
一个技巧可能是找出当前可见的视图控制器并在其上设置属性。 This thread可以帮助您这样做。
另一种方法是在故事板初始化时抓住目标视图控制器的对象。为此,您需要依赖prepareForSegue:sender:
方法。保存对象后,您可以将其传递给它。用它来设置属性。