2015-11-17 2 views
0

У меня есть menuViewController и ContentViewController с использованием https://github.com/romaonthego/RESideMenu. В 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

Возможная Дубликат [Передача данных между контроллерами View] (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 та: -

class ViewController: UIViewController { 

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

}

Смежные вопросы