2017-02-18 19 views
1

В основном у меня есть контроллер вида, который подталкивает к следующему контроллеру вида с [self performSegueWithIdentifier: sender:];, а в prepareForSegue я хотел изменить заголовок VC на «Назад», чтобы в следующем VC элемент кнопки задней панели был «Назад» вместо начальное название VC.Каков правильный способ вернуться к выполненному сеансу?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    self.title = @"Back"; 

} 

enter image description here

Теперь проблема заключается в том, что, когда я вернусь обратно к первому VC, нажав на кнопку Назад, я должен изменить название обратно в первоначальное название или иначе название будет оставаться в «Назад».

Если бы только был способ, как prepareForSegue, так что я могу получить VC назначения и изменить это название ...

Другим примером является то, что у меня есть раскадровка 3 контроллеров зрения как так:

enter image description here

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

ответ

1

В своем раскадровке перетащите Элемент навигации на ваш первый контроллер. Установите Название в название вашего точки зрения контроллера, и Назад Кнопка Для «Назад»

enter image description here

В качестве альтернативы, чтобы сделать это программно, создать UIBarButtonItem с нулевыми действиями и целями, и назначить navigationItem.backBarButtonItem (убедитесь, что вы делаете это в контроллере представления вы наступающий из)

+0

Блестящий! Я искал все stackoverflow и пытался ответить на такие вопросы, как «сделать это в' viewDidLoad »и т. Д. и я не могу поверить, что это было так просто. Один вопрос, однако, есть способ, которым я могу сделать действие (например, предупреждение «Вы обязательно вернетесь?»), Когда нажата кнопка «Назад»? – iamhx

+0

К сожалению, нет способа перехватить кнопку «Назад». Самое близкое, что вы получите, это добавить пользовательский 'leftBarButtonItem' к контроллеру дочернего представления, подключиться к' IBAction', а затем отправить предупреждение оттуда –

+0

Да, вы правы. Увидел этот вопрос здесь и сделал реализацию кнопки вместо этого. Большое спасибо! http://stackoverflow.com/questions/18824186/trying-to-handle-back-navigation-button-action-in-ios – iamhx

-1

в методе prepareForSegue:, вы можете получить destinationViewController по segue.destinationViewController. Я думаю, что это то, что вы хотите.

+0

Нет, это не работает. Theres no segue указывает, чтобы вернуться к предыдущему VC. Я попытался использовать один и тот же сегмент (тот, который движется вперед), и когда я постучал по спине, это не возбуждает мое действие. 'if ([segue.identifier isEqualToString: @" oneMinChallenge "]) {// action}' – iamhx

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

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