在我正在进行的当前项目中,我需要将变量从视图传输到视图。 我成功地将一个变量从tableviewcontroller转移到这样的UIviewcontroller。
if segue.identifier == "Done" {
let nav = segue.destinationViewController as! UINavigationController
let transfer = nav.topViewController as! quizViewController
transfer.questionArrays = questions2
}
但是当我尝试将一个变量从tableviewcontroller转移到这样的tableview控制器时,
if segue.identifier == "answerSegue" {
let nav = segue.destinationViewController as! UINavigationController
let transfer = nav.topViewController as! answersTableViewController
transfer.index = rowIndex
}
我收到错误说
“无法转换类型list2.answersTableViewController的值”
所以问题是,如何将变量从UITableViewController传递到UITableViewController?
这是我的故事板。 Storyboard
答案 0 :(得分:1)
首先,你施展:
let transfer = nav.topViewController as! quizViewController
然后你施展:
let transfer = nav.topViewController as! answersTableViewController
此代码实际上有点奇怪,如果不发布更多详细信息,就无法找到。
通常,您无法通过UINavigationController访问目标控制器。您只需执行以下操作:
let destinationController = segue.destinationViewController as! YourDestinationControllerClass
destinationController.variable = value
根本不需要涉及UINavigationController。
也许这会对你的情况有用吗? :
if segue.identifier == "answerSegue" {
let transfer = segue.destinationViewController as! answersTableViewController
transfer.index = rowIndex }
答案 1 :(得分:0)
这是因为在你的故事板中第二个UITableViewController没有自己的UINavigationController。试试这个:
if segue.identifier == "answerSegue" {
let transfer = segue.destinationViewController as! answersTableViewController
transfer.index = rowIndex
}