2010-07-26 3 views
1

В приведенном ниже приложении вы можете увидеть мою текущую установку, в которой запускается приложение, и в зависимости от того, зарегистрирован ли пользователь или нет, другой подсистема uiviewcontroller добавлен в качестве подзона основного приложения [window addSubview: [loggedOutController view]]; Мой вопрос находится в пределах -View1 (экран входа в систему), как только пользователь попытается войти в систему и он будет успешным, как я могу вернуться на корневой уровень MainApplication и вместо загрузки LoggedOut UIVIewcontroller теперь вместо этого загружать в LoggedIn UIViewController? Мне непонятно, как общаться по-разному.Iphone SDK - Общение между объектами

 
MainApplication 
    - UIViewController (Logged Out) 
     -UINavController 
      -View1 (Login Screen) 
       -View1a (Register Screen) 
    - UIViewController (Logged In) 
     -UITabBarController 
      -View1 (Settings) 
       -UINavController (Handle edit Profile Settings) 
        - View 1 
         -View 1a 
         -View 1b 
         -View 1c 
      -View2 
+0

Я только что узнал о NSNotificationCenter, похоже, что это сработает, спасибо за помощь! – user391986

ответ

2

Я уверен, что существует множество способов сделать это. Один из способов передачи информации между представлениями - установка объекта делегата. Например, создайте объект-делегат MainViewController в LoginScreen, и после успешного входа в систему вы можете позвонить [delegate onSuccessfulLogin], который может вывести стек представления и запустить контроллер вида LoggedIn.

+0

Спасибо, B_ означает, что это означает, что мне нужно установить каждый объект под UIViewController в качестве делегата из следующего и реализовать функции для передачи данных обратно в UIViewController по одному объекту за раз или есть более прямой путь назад к UIViewController без необходимости касаться каждого объект между ними? – user391986

+1

Если ваша структура должна передавать объекты очень далеко назад, есть и другие вещи, которые вы можете сделать. Объектом вашего главного объекта просмотра может быть [singleton] (http://en.wikipedia.org/wiki/Singleton_pattern), что в основном означает, что вы создаете экземпляр объекта в его классе и функции, который возвращает этот экземпляр. Вы также можете создать статический класс, в котором вы можете установить флаги для того, вошли ли вы в систему и т. Д., И, при необходимости, проверять эти флаги. –

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