2015-02-17 3 views
0

Я создаю игру быстро, и моя цель состоит в том, чтобы каждый уровень игры получал доступ к одному и тому же контроллеру представления, но мне нужно отправить уникальную информацию с кнопки, дойдя до этого контроллера вида так что я могу получить доступ к основным данным в следующем контроллере представления на основе информации, отправленной с первого контроллера представления.Как получить доступ к одному и тому же виду из другого представления несколькими кнопками

Моя проблема, я не знаю, как отправить несколько фрагментов информации от первого контроллера представления на второй контроллер представления в prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)

Я попытался установить уникальную информацию о каждой кнопке в хранилище ключевого ресурса, но Я не могу получить к нему доступ

LevelsMainScreen.swift override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var dest : Levels = segue.destinationViewController as Levels //Getting the value of the keyPath of the tapped button to send to levels view controller dest.level = sender?.keyPath("levels") }

Вот-контроллер я хочу, чтобы отправить его, так что я могу начать получать доступ к информации основных данных

class Levels: UIViewController { 

    @IBOutlet var lblSubLevel: UILabel! 
    @IBOutlet var lblLevel: UILabel! 
    var level = Int() 
    var subLevel = Int() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     lblLevel.text = "\(level.value)" 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

`

ответ

2

Вы должны установить идентификатор для каждого Segue из раскадровки в атрибуты инспектора. Затем, в контроллере LevelsMainScreen.swift, makeForSeque проверяет, что идентификатор segue равен указанному вами идентификатору segue. Там вы можете назначить уровни по своему усмотрению.

т. Е. Укажите идентификатор segue как segue1, segue2, segue3 из инспектора атрибутов в каждом сегменте.

В LevelsMainScreen,

override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) { 

    var dest : Levels = segue.destinationViewController as Levels 
    if(segue.identifier == "segue1") { 
     //set your customized level values here... 
     //ie., dest.level = 1 
    } 
    else if(segue.identifier == "segue2") { 
     //set your customized level values here... 
    } 
    else if(segue.identifier == "segue3") { 
     //set your customized level values here... 
    } 
} 
+0

Это была отличная идея добавления идентификатора, но я все еще получаю ошибку «„AnyObject“не имеет элемент с именем„“Ключевой путь» Любая идея, почему? – Cesarg219

+0

Вместо sender.keyPath просто передайте уникальные значения, которые вы хотите передать контроллеру уровней Levels. См. Обновленный код. – Suresh

+0

Большое вам спасибо за помощь – Cesarg219

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