gpt4 book ai didi

iphone - 在 UINavigationController 中如何调用父函数

转载 作者:行者123 更新时间:2023-12-03 20:26:06 24 4
gpt4 key购买 nike

NSArray *allControllers = self.navigationController.viewControllers;
UITableViewController *parent = [allControllers lastObject];
[parent myFunction]; // not work

myFunction是parent中的一个函数,但是这段代码不起作用,哪里错了

最佳答案

[self.navigationController.viewControllers lastObject] 将返回压入堆栈的最后一个 Controller ,该 Controller 是您从中执行此代码的 Controller 。要获取以前的 Controller ,您可以使用 [allControllers objectAtIndex:allControllers.count - 2] 但这是一个非常糟糕的主意:

1) 没有人能保证你的 Controller 有一天不会成为根 Controller 。那么上面的代码将使您的应用程序崩溃,因为它之前没有 Controller 。

2) 没有人能保证有人不会在你的 Controller 之前按下“错误”的 Controller 。

所以我的建议 - 在“子” Controller 中创建像 @property (retain) ParentController *parentController; 这样的属性,并将其显式设置为指向“父” Controller 。

关于iphone - 在 UINavigationController 中如何调用父函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246666/

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