2015-02-11 4 views
1

Прошло несколько месяцев, которые я запрограммировал для iOS, и хочу закончить игру новыми функциями. Теперь, когда люди играют в игру и проигрывают, они увидят представление «Игра поверх».Передача данных из Segue

Теперь я хочу, чтобы люди сначала увидели, где они могут использовать купленные кредиты, которые они получили, и вернуться к игре с помощью extra seconds or life. Но я не делаю это правильно.

Way Я пытается сделать:

  - Save Me View (Segue) 
Game view - 
      - Game Over View (Segue) 

Итак, вы проиграете, автоматически перейти к save me зрения, жмется и перейти к game over немедленно. В противном случае используйте NSUserDefaults, который был сохранен, прежде чем показывать вид Save Me.

Так что я использую NSUserDefaults для сохранения предыдущих игровых уровней/очков и т. Д., И это неправильный способ сделать, и поток становится сложным.

Вторая попытка: Я пробовал, но я застрял на последнем шаге. Поскольку я использую Segue и делегатов, я не знаю, как сделать мой GameView делегатом SaveView, в то время как протоколы уже есть. Я следил за этим: Passing Data between View Controllers

Теперь, на шаге 6, Я работаю, потому что я использую modal segue с моими UIViewControllers и без UINavigationControllers. У меня это в моем коде atm:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if ([[segue identifier] isEqualToString:@"SaveMe"]){ 

     SaveMeViewController *vc = [segue destinationViewController]; 
     // Here needs to come that GameView (This Class) is the delegate for SaveMeViewController. Tried vc.delegate = self; but this doesn't work. 
     [self savePoints]; 
    } 
} 

ответ

1

Вы можете настроить делегат в предоставленном представлении, который передает, как закончилась игра.

+0

Спасибо, попробовал, но я застрял на последнем шаге. Поскольку я использую Segue и делегатов, я не знаю, как сделать мой GameView делегатом SaveView, в то время как протоколы уже существуют .. Я следил за этим: http://stackoverflow.com/questions/5210535/pass-data-between-view-controller Я отредактирую свой OP – Kets

-1

Как я понимаю, использование @property или делегата для передачи данных поможет вам.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if ([segue.identifier isEqualToString:@"SaveMe"]) { 
    SaveMeViewController * vc = segue.destinationViewController; 
// create property in SaveMeViewController and access that property and pass values 
    vc.property = value to assgin; 
    } 
} 
+0

Да, это то, что я делаю, но теперь я создаю делегата для передачи данных назад и для передачи данных назад мне нужно как сделать GameView делегатом SaveGame, чтобы вернуть данные. – Kets

+0

Уметь решить проблему –

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