【发布时间】:2016-07-27 09:16:01
【问题描述】:
在我的 ViewController 中,我创建了一个枚举:
enum ItemType: String {
case Restaurant, Boutique, Resort
}
在didSelect我使用:
self.performSegueWithIdentifier("goToItemsList", sender: ItemType.Restaurant.hashValue)
稍后,在:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "goToItemsList" {
let itemsListTableViewController = segue.destinationViewController as! ItemsListTableViewController
itemsListTableViewController.cellType = sender!
}
}
那么,我现在如何签入我的ItemsListTableViewController
if cellType == .Restaurant {
// Do something
}
?我知道,为此,我需要执行以下操作:
var a: ItemType
稍后再检查,但我无法在 ItemsListTableViewController 中将 a 的类型设置为 ItemType。
谁能帮我解决这个问题?
【问题讨论】:
-
ItemType(rawValue: sender! as String) == .Restaurent
-
@RJE 但我的第二个 tableviewcontroller 没有看到 ItemType
-
使用
itemsListTableViewController.cellType = ItemType(rawValue: sender! as String)假设 cellType 是一个 'ItemType' -- var cellType: ItemType。啊..你的意思是项目类型在第二个 VC 中不可见。如果您在全局范围内定义枚举,其他 swift 类应该会看到它。 -
另外,在
performSegueWithIdentifier中使用rawValue而不是hashValue。
标签: ios swift uitableview enums