2012-04-28 5 views
2

Предположим, у нас есть приложение, в котором есть много контроллеров просмотра и панель навигации. Теперь приложение начинается с представления A, затем мы можем нажать дальше и перейти к B, нажать далее и перейти к C и т. Д. Теперь, в последнем представлении, допустим, Z - у нас есть кнопка «перейти к первой». То, что я сделал, перетаскивается из представления Z, чтобы просмотреть A, и это создало segue. Я дал это segue идентификатор, скажем, «goToA». Теперь, при нажатии кнопки я сделал что-то вродеiOS 5.x - Segueing между контроллерами вида

-(IBAction)goToFirstPressed{ 
[self performSegueWithIdentifier:@"goToA" sender:self]; 
} 

Что он делает - он идет к А. Но вот важная часть - это не идет на А, которая появилась на экране в первый раз , он перешел к другому экземпляру диспетчера представлений A. Итак, скажем, если бы у меня в первом виде контроллер (A), играющий видео, теперь я иду на Z, затем перейдите, я больше не увижу это видео, и более важно - Я могу воспроизвести одно и то же видео дважды, перекрывая звуки. Любая идея о том, как это исправить? Благодаря!

ответ

2

Segue только идет в одном направлении. он всегда будет создавать новый экземпляр представления, к которому вы перемещаетесь.

Для этого вы можете использовать делегирование.

Попробуйте this

Вы можете реализовать этот метод протокола, как выглядит следующим образом:

- (void) goToFirstView{ 

    [[self navigationController] popToRootViewControllerAnimated:YES]; 

} 
+0

Он отлично работает. Большое вам спасибо, сэр! – nemesis

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