Принудительное изменение вида с помощью кнопки при использовании UITabBarController - PullRequest
1 голос
/ 16 мая 2010

При использовании UITabBarController, когда пользователь вводит некоторые данные в View1 и нажимает кнопку, мне нужно выполнить некоторые вычисления и представить результаты в View2.

У меня есть AppDelegate, View1Controller, View2Controller и View3Controller (View3 - это в основном статическое представление). Мой AppDelgate объявляет UITabBarController * rootController;

На View1 у меня есть расчеты, выполняемые в IBAction для buttonPressed; однако я не могу заставить вид переключиться на View2 программным путем.

Я много занимался поиском похожих проблем и думаю, что должен делать что-то вроде "self.rootController.selectedIndex = 1"; однако, когда я делаю это изнутри buttonPressed на моем View1Controller, я получаю сообщение об ошибке "запрос на член rootController в чем-то, что не входит в структуру или объединение".

Я думаю, что мне здесь чего-то не хватает ... наверное, нужно что-то сделать с моим AppDelegate, но я бьюсь головой о стену.

Может ли кто-нибудь дать некоторые рекомендации в этой ситуации ... например, ключевые вещи, которые я должен сделать в заголовке и реализации View1Controller со ссылкой на мой AppDelgate? Спасибо!

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Для тех, кто ищет, как переключиться с одной вкладки на другую, есть ответ здесь .

0 голосов
/ 16 мая 2010

Это звучит как странный пользовательский интерфейс - но давайте признаем, что вы пытаетесь делать правильные вещи.

Разработка iPhone для Model View Controller - MVC. Поэтому в принципе вы хотите, чтобы View1 обновлял вашу модель, а View2 выполнял вычисления на основе вашей модели.

Если вы используете контроллер панели вкладок, то вы, вероятно, захотите узнать, когда вы изменили порядок вкладок, чтобы делать эти вещи. В view1 вы, возможно, захотите написать свой код для обновления вашей модели в viewWillDisappear - это будет выполнено так же, как вкладка будет заменена следующей. Дополнительной функцией (вы можете использовать ее в view2) является viewWillAppear - ее можно использовать для обновления view2 данными вашей модели.

Теперь вам остается понять, куда поместить вашу модель. Возможно, вы захотите создать класс с @parameters на основе данных, которые необходимо сохранить в вашей модели. Затем вы можете создать экземпляр своей модели в AppDelegate и передать модель в оба вида в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...