gpt4 book ai didi

ios - 无法访问 parentviewcontroller 的属性

转载 作者:行者123 更新时间:2023-11-29 13:12:57 25 4
gpt4 key购买 nike

这是一个快速而肮脏的问题:我有一个“主” View Controller (VC),它是从使用导航 Controller 的父 VC 打开的。然后我有一个从“主”VC 打开(模式转场)的“子”VC。

我在主 VC 的界面中设置了一个属性:

@property (nonatomic) int myVar;

然后将其设置为从“主”VC 的界面显示“子”VC 的触摸按钮 Action :

self.myVar=1;

我在subVC.h中引入了mainVC.h

然后在 subVC 的 viewDidLoad 方法中,我试图访问 myVar 的值,但不能这样做:

NSLog(@"Myvar is %i", ((mainVC*)self.parentViewController).myVar);

返回值为 0。

当我尝试使用 presentingViewController 方法时,我得到了一个错误(当我推送 segue 而不是将其设置为模态时,这并没有导致错误:

[MainVC myVar]: unrecognized selector sent to instance

我正在尝试为 iOS 5 编写代码,不用说我仍然是个菜鸟。我错过了什么?

谢谢!

最佳答案

“子” View Controller 的 parentViewController 不是 mainVC,它是导航 Controller 。 mainVC 不可访问 - 如您所知,它可能会被释放以节省内存。

如果需要在segue上将数据从主 Controller 传递给子 Controller ,在“子” View Controller 中添加一个实例变量,并在prepareForSegue方法中设置:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"open_sub"]) {
subVC *sub = segue.destinationViewController;
sub.myVar = 1;
}
}

关于ios - 无法访问 parentviewcontroller 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16742635/

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