2016-12-14 18 views
0

У меня есть tableView с ячейкой для каждого покемона в «pokedex». Когда я нажимаю кнопку в ячейке, я хочу показать представление с подробностями об этом существе.Swift: установить переменную перед выполнением segue

Что я делаю, так это то, что у меня есть глобальная переменная «currentPokemon», которую я установил на запрошенный покемон при нажатии кнопки. Вот мой код для Cell:

class PokemonTableViewCell: UITableViewCell { 

    var pokemon: Pokemon! 
    @IBOutlet weak var pokemonImage: UIImageView! 
    @IBOutlet weak var nameLabel: UILabel! 
    @IBOutlet weak var releaseDateLabel: UILabel! 

    @IBAction func setPokemon(sender: UIButton) { 
     currentPokemon = self.pokemon 

    } 
} 

Когда я пытаюсь получить доступ к currentPokemon вар в детальном просмотре, я получаю фатальную ошибку, потому что currentPokemon равна нулю. Как я могу заставить этот код исполняться до начала?

+0

Использование может отправить ваш 'pokemon 'к следующему контроллеру с помощью метода' prepareForSegue'. Но для вашего случая - где вы храните 'currentPokemon'? –

+0

Вы не устанавливаете 'pokemon' ни в чем. Вы просто создаете переменную, но не инициализируете ее. – TheValyreanGroup

+0

@ArtemNovichkov хранится в файле .swift, за пределами определения класса Pokemon, он доступен из других представлений, он работает, если я устанавливаю покемон по умолчанию. – Spoutnovitch

ответ

-1

Если вы используете SEGUE, вы должны передавать данные подробно контроллер в этом UIViewController метода:

func performSegue(withIdentifier identifier: String, sender: Any?)

+1

Это функция переопределения, и вам нужно отформатировать сообщение как код. – TheValyreanGroup

0

Вы должны добавить магазин для выбранных покемонов с одноплодными например, как:

struct Pokemon { 
    let name: String 
} 

class PokemonStore { 

    static let instance = PokemonStore() 
    var currectPokemon: Pokemon? 
} 

Позже вы можете получить сохраненный pokemon в любом месте вашего кода с PokemonStore.instance.currectPokemon

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

  • Нет связанных вопросов^_^