2015-09-02 1 views
0

Я пытаюсь программно создавать новый контроллер представления одного и тот же типа, как мой оригинальный контроллер представления, используя этот код:Swift - Как сохранить ссылку на старый контроллер просмотра при создании нового контроллера представления?

self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier(StoryboardKeys.ViewIdentifier), animated: true) 

Я хотел бы, чтобы пользователь смог вернуться к моему первоначальному контроллеру представления, так Мне было интересно, есть ли способ сохранить старый контроллер просмотра в памяти? Кроме того, если я создаю экземпляр диспетчера представлений таким образом, я получу для подготовки forsegue (чтобы программно добавить кнопку «Назад»)? Если нет, как я могу добавить кнопку «Назад» при нажатии этого контроллера вида?

Я подозреваю, что есть лучший способ сделать это, поэтому, если есть, сообщите мне. Большое спасибо за любую помощь!

ответ

0

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

+0

но что делать, если я хочу навести экземпляр одного и того же контроллера точки вверх? – Jared

+0

Я не вижу причины, почему вы это сделаете. Но если вам нужно, вы можете запустить новый контроллер просмотра. Если вы нажмете ваш текущий контроллер представления на стек, я думаю, вы получите исключение. – John

+0

Если вы хотите вернуться, вы можете использовать self.navigationController? .dismissViewControllerAnimated (true, completion: no) –

0

Просто используйте self.navigationController!.popViewControllerAnimated(true) где-то в вашем втором контроллере. Контроллер навигации содержит стек представлений, который можно получить с помощью self.navigationController!.viewControllers. Вы можете изменить этот стек, как вам нравится.

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