Что-то не так с переключением представлений путем установки корневого контроллера представления? - PullRequest
2 голосов
/ 13 мая 2011

Мне было интересно, является ли следующий способ приемлемым способом переключения представлений?

AppDelegate.m

- (IBAction) switchViews
    {
    if (self.window.rootViewController == self.viewController) {
        self.window.rootViewController = self.settingsNavigationViewController;
    } else {
        self.window.rootViewController = self.viewController;
    }
}

И viewController, и settingsNavigationViewController загружаются из nib-файлов при запуске приложения.

Главный вид (viewController) содержит вид прокрутки с 3 видами изображений для бесконечного эффекта прокрутки, а также панель поиска вверху и панель инструментов внизу.

Второй вид предназначен для моегонастройки приложения.Это навигационный контроллер, который работает аналогично пакету настроек.

В обоих представлениях есть кнопка, которая вызывает switchViews;

Нужно ли реструктурировать мое приложение или это хороший способ сделать это?или мне нужно реструктурировать мое приложение?

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

хотя это возможно сделать (документация яблок объясняет здесь и, кажется, не предотвращает это

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html%23//apple_ref/occ/instp/UIWindow/rootViewController

)

это также означает, что ваши существующие представления удалены ..

В нем определенно есть какой-то запах кода. Поскольку это диалоговое окно настроек, почему бы не загрузить свой контроллер навигации параметров в модальное представление, как показано ниже (аналогично приведенному ниже). Лично это кажется немного чище и более соответствует тому, что пользователь может ожидать ...

[[self.viewController] presentModalViewController:self.settingsNavigationViewController animated:YES];
0 голосов
/ 13 мая 2011

Я думаю, вы должны использовать tabbarcontroller.

...