gpt4 book ai didi

ios - 与多个 Controller 的通信和空间分配

转载 作者:行者123 更新时间:2023-11-29 03:12:28 26 4
gpt4 key购买 nike

我是使用多个 View Controller 进行编程的新手。我有一个 RootViewController 和一个 FirstViewController。 RootViewController 内部:

@property (nonatomic, retain) FirstController * firstController;


- (FirstController *)firstController {

if (!_firstController) {
UIStoryboard *storyboard = self.storyboard;
_firstController = [storyboard instantiateViewControllerWithIdentifier:@"First View"];
}

return _firstController;
}

因此,我设法在 Storyboard 中看到了我设计的 FirstViewController。

问题是这样的。如果我尝试在 RootViewController 中运行这条指令:

    _firstController.myString = _myString;

myString 显然是 RootViewController 中的属性名称,与 FirstViewController 中的相同。如果不为 _firstController 分配内存,则无法运行此指令。但是,如果我分配内存并初始化 _firstController,则在 Interface Builder 中所做的所有调整都将消失。

我该如何解决?我确定我正在尝试做一些非常错误的事情。提前谢谢你。

最佳答案

你写了 getter - 所以使用它吧!

self.firstController.myString = _myString;

代替

_firstController.myString = _myString;

您正在尝试直接访问实例,当然没有为其分配内存,因为您正在使用称为“延迟加载”的技术(ivar 将在需要时分配。)通过使用 self.firstController 您只需发送消息 [self firstController] 即可为第一个 Controller 分配内存。

关于ios - 与多个 Controller 的通信和空间分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22098009/

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