Передача значения из модального вида в контроллер панели вкладок - PullRequest
1 голос
/ 28 июля 2011

Я реализую приложение для iPhone, которое представляет собой приложение на основе панели вкладок. В начале я выбрасываю модальное представление, которое показывает форму входа в систему. Если вход в систему в порядке, я отклоняю это модальное представление и показываю первую вкладку панели вкладок «Навигация». Проблема в том, что мне нужно передать пользовательскую информацию из модального вида в контроллер панели вкладок. То, что у меня так далеко, это: В моем AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

tabBarController.delegate = self;
// Add the tab bar controller's view to the window and display.
self.window.rootViewController = self.tabBarController;
[self addTabBarArrow];
[self.window makeKeyAndVisible];

//Throw up the Modal View

InicioAppModalViewController *tempView = [[InicioAppModalViewController alloc] initWithNibName:@"InicioAppModalView" bundle:nil];
[self.tabBarController presentModalViewController:tempView animated:true];
[tempView release];
return YES;}

В моем InicioAppModalViewController у меня есть 2 функции, чтобы вызвать модальное представление с формой входа в систему, нажав элемент навигационной кнопки:

- (IBAction)showModalLoginForm:(id)sender {
LoginViewController * loginVC = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil];
[self presentModalViewController:loginVC animated:YES];
[loginVC release]; }

и затем в этой форме я только что получил несколько полей TextFields и проверяю, все ли в порядке, используя методы NSURLConnection. После этого, перед тем как закрыть это модальное представление, я хотел бы отправить информацию о пользователе на контроллер панели навигации.

Как я мог это реализовать? Есть предложения?

Заранее спасибо !!

Ответы [ 2 ]

0 голосов
/ 29 июля 2011

Я бы порекомендовал использовать делегата. В вашем модальном представлении есть свойство:

@property (nonatomic, assign) id delegate;

Затем поместите эту строку непосредственно перед текущим ModalViewController:

loginVC.delegate = self;

Затем вы можете реализовать метод, такой как collectUserData: (NSDictionary *) information, и вызвать его в loginVC непосредственно перед тем, как вы его освободите, вот так:

[delegate collectUserData:allMyInfoThatIwant];
0 голосов
/ 28 июля 2011

Самый простой способ - использовать Внедрение зависимостей , что означает внедрение этой информации в контроллер. Apple рекомендует использовать делегирование.

Итак, вам нужно определитьсвойство на панели вкладок для хранения пользовательской информации, которую вы хотите передать, затем сделайте что-то вроде этого:

[myTabBar new];
[myTabBar setUserInfo:myUserInfo];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...