在dismissModalViewController之后未传回的值

时间:2011-11-22 21:22:52

标签: objective-c ios cocoa-touch

我为了测试而传递一个字符串变量(isLoggedIn)以及一个NSManagedObject(userObject)。但是,当我关闭VC并返回到root时,我没有在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 access properties

2 个答案:

答案 0 :(得分:1)

我最后使用代表作为上面建议的人。我使用以下帖子作为指导:

UIViewController parentViewController access properties

答案 1 :(得分:0)

我可能没有正确地关注你,所以这可能是无关紧要的。

我猜你的意思是:

  1. 您在alloc / init
  2. 之后设置了您的ivars
  3. 您在LoginViewController
  4. 中进行了一些更改
  5. 您希望这些更改能够反映在实例化self.userObject
  6. 的类的self.isLoggedInLoginViewController

    如果您对对象本身进行操作或重新分配指针

    ,则可能会或可能不会发生

    e.g。

    如果您在self.userObject.name = @"Test";内拨打LoginViewController,则更改将反映在实例化LoginViewControllerLoginViewController的类中,因为ivars指向内存中的同一对象而你正在操纵这个物体。

    如果你调用self.userObject = theResultOfSomeNewFetch;,那么更改将不会反映出来,因为你现在在LoginViewController中有一个指针指向与调用{的类中的指针不同的userObject {1}}

    希望我没有完全丢失情节,这是你的意思。