是否可以在没有`presentViewController`的情况下进行委托

时间:2015-10-10 06:23:02

标签: ios objective-c

目前我遇到传递数据的问题,因为我假设通过委托传递数据需要你presentViewController

目前我有类似这样的设置

GameViewController  *gameVC = [self.storyboard instantiateViewControllerWithIdentifier:@"GameViewController"];
gameVC.isTwoPlayer = isTwoPlayer;
gameVC.delegate = self;
[self presentViewController:gameVC animated:YES completion:nil];

因此可以发送数据,但我之间有一个导航控制器,我present modally故事通过电路板segueGameViewController,这是为什么我不能presentViewController

我想知道是否有可能以其他方式发送数据

1 个答案:

答案 0 :(得分:0)

  

我假设通过委托传递数据要求你   presentViewController

嗯,那不是真的。只要对象有效,您就可以传递数据。然而,调用presentViewController的原因通常是,当从一个视图控制器转换到第二个视图控制器时,您希望将一些数据传递给可以在新屏幕上显示的第二个视图控制器。

实际上,委托模式不是为传递数据而设计的。它意味着让一个对象代表另一个对象做一些活动。您传递数据是因为您创建了第二个VC的对象,它与委托无关!

就通过其他方式传递数据而言:

  1. 对象创建&属性设置:创建要传递数据的类的对象并在其上设置属性。
  2. Singleton :创建单个对象,设置数据并从任何地方访问它。
  3. 核心数据:使用常用表进行读/写。通常,您不仅要共享数据,还要处理涉及数据按摩等的情况。