gpt4 book ai didi

ios - 更新 iOS ContainerView 界面对象时出现问题

转载 作者:行者123 更新时间:2023-11-29 03:45:54 25 4
gpt4 key购买 nike

我正在尝试从显示它的 UIViewController 更新 iOS 上 ContainerView(嵌入 UIView 中的 UIViewController)的界面内容。但是,ContainerView 只是不会更新其内容。

ContainerView 和 ViewController 与不同的类关联。我可以使用以下几种方法在两个 View Controller 之间传递数据:

- (void)displayStringInContainer:(NSString *)string

string成功从 ViewController 传递到 ContainerView,但是当我尝试在界面元素中显示该字符串时 - 什么也没有发生(即使代码被调用):

self.buttonName.titleLabel.text = string;

我什至尝试过调用setNeedsDisplay按钮上,但没有任何反应。请注意,所有界面项都会发生这种情况。

以下是我如何从 ViewController 调用 ContainerView 上的方法:

ContainerViewController *cvc = [[ContainerViewController alloc] init];
[cvc displayStringInContainer:@"Text"];

我已经进行了大量搜索,但没有找到任何东西(也尝试查看Apple Dev Site,但过去三天已经关闭:P)。 有人知道如何从另一个 ViewController 更新 ContainerViewController 的内容吗?为什么这不起作用?我已经为此摸不着头脑有一段时间了。

最佳答案

Alloc init'ing cvc 不是获取引用的正确方法 - 这是一个新实例,与 View 中嵌入的实例不同。您可以使用 self.childViewControllers[0] 从父 Controller 的代码中访问该实例(假设您只有一个容器 View )。您还可以通过实现prepareForSegue并使用segue.destinationController(这将是您的嵌入式 Controller )来获取引用。

您的理解中似乎缺少的是,当您在 Storyboard中使用容器 View 时获得的 Controller 是 subview Controller 。这就像您在代码中调用 [self addChildViewController:whatever] 然后将 subview 添加为 View 的 subview 一样。

关于ios - 更新 iOS ContainerView 界面对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17765873/

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