Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как перейти к определенному viewController из любого текущего viewController?

Автор вопроса: Greg CawthorneОтветов: 3

Хорошо. Мое приложение зависит от наличия активного подключения к Интернету. Когда его нет, вы можете не использовать его. Первоначально я просто собирался представить пользователю alertView с параметрами "повторить попытку подключения" и "закрыть приложение", но после небольшого исследования я обнаружил, что Apple не одобряет закрытие приложений. Поэтому вместо этого я решил представить alertView с параметрами "повторить попытку подключения" и "подождать", где ожидание приведет вас к относительно скучному viewController, который будет периодически проверять наличие интернет-соединения (раз в 15 секунд или около того). Идея состоит в том, чтобы заставить пользователя выйти из приложения для меня с помощью кнопки "Домой" или возобновить игровой процесс, если подключение к Интернету будет восстановлено.

Однако, как вы можете себе представить, доступ в Интернет может быть в любое время (когда вы находитесь на любом данном контроллере представления). Это означает, что об использовании переходов не может быть и речи, потому что мне пришлось бы делать их глупое количество, и все они переходили бы от каждого viewController к этому одному ждущему viewController.

Есть идеи? Есть ли [self gotoViewControllerWithTitle:@"wait"]; команда, о которой я не знаю?

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

Спасибо заранее, и любая помощь приветствуется :).

xcodeiphoneobjective-ctransitionsegue

Ответы

Ответ 1 · рейтинг 2 · Daniel Broad

Попросите вашего делегата приложения обнаружить отсутствие Интернета и представить свой модальный контроллер представления "Нет Интернета". Затем, когда Интернет возвращает "dismissModalViewController" и вуаля, ваш предыдущий контроллер представления находится внизу.

Ответ 2 · рейтинг 1 · brianSan

Вы можете подклассировать "UIViewController", чтобы создать свой собственный базовый "UIViewController", чтобы иметь общий метод, который проверяет соединение и при отключении вызывает контроллер модального представления, говорящий, что пользователь потерял соединение. А затем, возможно, даже выскочить на корневой контроллер представления. Затем создайте подкласс этого класса, и тогда каждый контроллер UIView теперь будет иметь необходимую вам функциональность. ООП ФТВ

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

Ответ 3 · Samir

Сделайте свой "контроллер представления без подключения" одноэлементным объектом. Затем вы можете получить доступ к этому же экземпляру, используя методы класса (например: [MyNoConnectionViewController shareInstance]).

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы