gpt4 book ai didi

ios - 不断在两个 View Controller iOS 之间传递数据

转载 作者:行者123 更新时间:2023-11-29 00:34:55 24 4
gpt4 key购买 nike

我是 objective-c 的新手。我尝试在2个 View Controller (例如controllerA和controllerB)之间发送数据,但我不断需要这些数据,所以我在controllerB中使用_displaylink从controllerA调用方法。我在 controllerA 中使用播放器,我想在 controllerB 中显示时间等。如何获取controllerA的现有实例?

我尝试了两种不同的方法来做到这一点,但都创建了 viewcontroller 的新实例

示例1:

 RootViewController *controller=(RootViewController *)self.presentedViewController;

示例2:

RootViewController *parent=self.parentViewController;

当我使用这个解决方案时,我可以从 controllerA 调用方法(但这是来自新实例的方法 :( )

我也尝试了这个解决方案:

RootViewController *rootController =(RootViewController*)[[(AppDelegate*)
[[UIApplication sharedApplication]delegate] window] rootViewController];

但是当我尝试调用方法时,出现了这个错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MMDrawerController playerPositionS]: unrecognized selector sent to instance 0x7c406c00'

知道如何正确调用此方法吗?

最佳答案

In MVC as implemented in iOS/Objective-C , View Controller 引用一个共享模型,而不是彼此引用。他们应该观察该模型的变化,然后相应地更新他们的 UI。

观察变化的几种方法:

  • > KVO - 将对模型值的更改连接到观察者中的目标和选择器
  • > Notification - 允许模型“发布”它已更改,并允许 View Controller “观察”这些发布。
  • > Delegation - 这是最直接的(最被过度使用的,IMO)方法,其中一个对象通过一些定义明确的接口(interface)(协议(protocol))为另一个对象提供完成功能。

关于ios - 不断在两个 View Controller iOS 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40848147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com