Значения не возвращаются после dismissModalViewController - PullRequest
0 голосов
/ 23 ноября 2011

Я передаю строковую переменную для тестирования (isLoggedIn), а также NSManagedObject (userObject). Однако, когда я закрываю VC и он возвращается к корню, у меня нет новых данных, которые были установлены в переменных в loginViewController.

LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
loginVC.managedObjectContext = self.managedObjectContext;
loginVC.userObject = self.userObject;
loginVC.isLoggedIn = self.isLoggedIn;

[self presentModalViewController:loginVC animated:YES];
[loginVC release];

Позже я отклоняю представление с помощью:

[self dismissModalViewControllerAnimated:YES];

Обновление:

Закончилось использованием делегатов, как кто-то предложил. Я использовал следующий пост в качестве ориентира:

Свойства доступа UIViewController parentViewController

Ответы [ 2 ]

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

Я закончил тем, что использовал делегатов, как кто-то из них предложил. Я использовал следующий пост в качестве ориентира:

Свойства доступа UIViewController parentViewController

0 голосов
/ 23 ноября 2011

Возможно, я не следую за вами должным образом, поэтому это может быть неуместно.

Полагаю, вы имеете в виду, что:

  1. Вы установили свои ивары после alloc / init
  2. Вы делаете некоторые изменения внутри LoginViewController
  3. Вы ожидаете, что эти изменения будут отражены в self.userObject и self.isLoggedIn класса, который создал LoginViewController

, что может произойти или не произойти, если вы воздействуете на сами объекты или переназначаете указатели

, например

Если вы вызовете self.userObject.name = @"Test"; внутри LoginViewController, то это изменение будет отражено в классе, в котором созданы экземпляры LoginViewController и LoginViewController, поскольку ивары указывают на один и тот же объект в памяти, и вы управляете объектом.

OR

Если вы позвоните self.userObject = theResultOfSomeNewFetch;, то изменение не будет отражено, поскольку у вас есть указатель в LoginViewController, который указывает на другой userObject указатель в классе, который вызвал LoginViewController

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

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