Запустите другой UIViewController, когда вернетесь из режима просмотра настроек iOS.

Пожалуйста, помогите мне с концепцией, которую я новичок в iOS.

Я разрабатываю приложение, у которого есть две основные истории / представления.

При запуске приложение проверяет NSUserDefaults, и если: NSInteger witchView = [prefs integerForKey: @ "setView"]; установлено значение 1, я запускаю приложение, используя view1.

Затем из view1 я могу перейти к настройкам, и там есть кнопка переключения для установки просмотра, которая будет загружаться в stat. Это работает отлично ... если я установил view2 для запуска при запуске, он работает.

View2 также имеет кнопку настроек и может аналогичным образом перейти в settingsView.

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

Теперь мне нужно перезапустить приложение, если я этого хочу.

У меня есть класс AppDelegate, который запускает View1 или View2. Из View1 и View2 я могу перейти в SettingsView.

Нужно ли мне подключать SettingsView к AppDelegate? И каждый раз, когда я нажимаю кнопку настроек, всегда отклоняю view1 или view2 и из AppDelegate запускаю SettingsView, а по возвращении снова запускаю соответствующий?

Как лучше всего это сделать?

Спасибо, Матей


person Matej Zimic    schedule 22.11.2012    source источник


Ответы (1)


не совсем понятно, используете ли вы NavigatioController или ModalDialog, в любом случае кажется, что оба варианта не подходят для вашего сценария. поскольку, если пользователь изменит настройку и захочет вернуться, вы не можете обещать, что он вернется к тому же viewController. поэтому, когда вы используете UINavigationController, это означает, что вы хотели бы использовать тот же viewController, если кто-то нажмет backButton.

Я думаю, вам, вероятно, следует использовать анимацию для навигации.

попробуй это:

[UIView transitionWithView: containerView

       duration:0.2

       options:UIViewAnimationOptionTransitionFlipFromLeft

       animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; }

       completion:NULL];
person Amir Bareket    schedule 22.11.2012
comment
Я использую ViewControllers. Проблема, вероятно, в моем понимании загрузки и удаления представлений. У меня есть 3 ViewController и файлы Nib. Когда приложение запускается сначала в AppDelegate, и отсюда запускается один из сценариев. View1 или View2. Допустим, он запускает View1 с ViewController1, и из этого View мы можем перейти к настройкам, где мы устанавливаем представление загрузки (View1 или View2), а также другие параметры. Если мы установим разные представления для загрузки, я хочу, чтобы это представление загружалось при возврате. Не предыдущий. Спасибо, Матей - person Matej Zimic; 24.11.2012
comment
в случае, если пользователь изменит настройку, а затем вернется, после того, как он вернется, вы можете сделать некоторую анимацию для изменения с view1 на view 2, как я писал выше. но для вашего случая, возможно, лучше использовать ModalDialg, потому что пользователи ios ожидают увидеть предыдущий экран, когда они вернутся. поэтому в модальном диалоговом окне у вас будут кнопки отмены и сохранения, и вы можете использовать кнопку сохранения для переключения между представлениями, прежде чем отклонить modalDialog. - person Amir Bareket; 25.11.2012
comment
Ага, теперь я понимаю, о чем ты. Спасибо. Я попытаюсь. - person Matej Zimic; 26.11.2012