有没有一种方法来重构这个函数,以尽可能少的方式重复我的自我?重构开关 - 语句
我有四个ViewControllers,每个ViewControllers拥有一个变量eventData
这是一个自定义对象。
我想过让eventData
成为一个全局变量。这样做有什么缺点吗?
这是我使用的是现在的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
navigationItem.title = nil
let segues = UIStoryboardSegue.Segue.self
switch segue.identifier! {
case segues.EventOverviewToGuestList.rawValue:
let destinationVC = segue.destinationViewController as! GuestListVC
destinationVC.eventData = eventData
case segues.EventOverviewToAnalytics.rawValue:
let destinationVC = segue.destinationViewController as! AnalyticsVC
destinationVC.eventData = eventData
case segues.EventOverviewToMessaging.rawValue:
let destinationVC = segue.destinationViewController as! MessagingVC
destinationVC.eventData = eventData
case segues.EventOverviewToInformation.rawValue:
let destinationVC = segue.destinationViewController as! InformationVC
destinationVC.eventData = eventData
default: break
}
}
segues
是enum
:
extension UIStoryboardSegue {
enum Segue : String
{
case EventListToEventOverview
case EventOverviewToGuestList
case EventOverviewToAnalytics
case EventOverviewToMessaging
case EventOverviewToInformation
}
}