2015-11-17 31 views
0

我使用https://github.com/romaonthego/RESideMenumenuViewControllerContentViewController。 MenuViewController包含从本地数据库检索的不同联赛列表。这包含一个联盟对象,其中包含以下变种leagueIdname。当选择联盟时,它应该将数据发送到ContentViewController。但问题是,MenuViewController不呈现viewController它只是隐藏menuViwController,因此我不能将数据从menuViewControllercontentViewController当一个联盟的细胞被选中。因此,我试图将联盟ID保存为NSUserDefault键,但是这会在应用退出时产生问题,因为它不会重置NSUserDefaults。这种问题的最佳方法是什么?我应该重新考虑它吗?内容和菜单控制器之间传递数据

在menuViewController按下电池

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    NSUserDefaults.standardUserDefaults().setInteger(menuArray![indexPath.row].id, forKey: "leagueId") 


    self.sideMenuViewController.hideMenuViewController() 

} 
+0

可能的[查看控制器之间传递数据]的重复(http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – MQLN

+0

没有你甚至阅读@MacLean的问题?这不是两个视图控制器之间的 –

回答

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 
     } 
    } 
    } 

然后检索da TA: -

class ViewController: UIViewController { 

     let user = User.sharedInstance 
     mylabel.text = self.user.leagueId 
     mylabael2.text = self.user.name 

}

相关问题