我使用https://github.com/romaonthego/RESideMenu获得menuViewController
和ContentViewController
。 MenuViewController包含从本地数据库检索的不同联赛的列表。这包含一个包含以下变量leagueId
和name
的联盟对象。当选择联盟时,它应该将数据发送到ContentViewController。但是问题是MenuViewController没有呈现viewController,它只是隐藏了menuViwController
,因此当选择了具有联盟的单元格时,我无法将数据从menuViewController
传递到contentViewController
。因此我试图将leagueId保存到NSUserDefault
键,但是当应用程序退出时会产生问题,因为它不会重置NSUserDefaults。这种问题的最佳方法是什么?我应该重新思考一下吗?
按下menuViewController中的单元格
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
NSUserDefaults.standardUserDefaults().setInteger(menuArray![indexPath.row].id, forKey: "leagueId")
self.sideMenuViewController.hideMenuViewController()
}
答案 0 :(得分:0)
您可以通过创建全局类来实现此目的,首先创建一个全局类: -
import Foundation
class User {
class var sharedInstance: User {
struct Static {
static var instance: User?
static var token: dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = User()
}
return Static.instance!
}
var leagueId: Int?
var name:String?
}
然后将数据存储在您想要的类中
class ViewController: UIViewController {
let user = User.sharedInstance
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetails" {
self.user.leagueId = Id
self.user.name = Name
}
}
}
然后检索数据: -
class ViewController: UIViewController {
let user = User.sharedInstance
mylabel.text = self.user.leagueId
mylabael2.text = self.user.name
}