如何从 appdelegate 访问 uitablviews 选定项目?

Posted

技术标签:

【中文标题】如何从 appdelegate 访问 uitablviews 选定项目?【英文标题】:How to access a uitablviews selected item from the appdelegate? 【发布时间】:2012-02-20 17:40:40 【问题描述】:

如果我在 tabbar 选项卡上的 uitableview 中有一个 uitableview(是的,顶层 tableview 的单元格是 tableview,但没关系)并且用户选择了一行,我如何才能从我的 appdelegate 和从标签栏标签

我的主要问题是,如果您的视图层次结构深处有一个 var,tabbar viewcontroller 或 appdelegate 如何获取它?

【问题讨论】:

【参考方案1】:

我通常使用特定的类来保存这些变量。源代码如下所示:

static UIView *__someView = nil;
@implementation VariableContainer
+ (void)setSomeView:(UIView *)someView 
    __someView = someView;

+ (UIView *)someView 
    return __someView;
    
@end

当你创建一些你想从某个遥远的对象访问的对象时,你只需调用 [VariableContainer setSomeView:] 并且当你需要访问它时 [VariableContainer someView]。

这只是实现相同结果的众多方法之一。关于这个的一些提示:

为每个自定义对象(例如您的应用程序委托)放入标题“@class objectName” 尝试仅将此容器导入源文件(无标题) 不使用retain,只有弱链接 您可以放置​​任意数量的对象,因此只有 1 个容器

我希望这会有所帮助。

【讨论】:

我得到了这个的上半部分,但项目符号列表没有那么多。你能举一个实施的子弹的例子吗?最后一个项目符号表示不止一个对象,但 someview 是一个 uiview var 而不是一个数组 如果您需要一个数组,请使用 na 数组。我的意思是把静态 UIView *__someView; static ApplicationViewController *__mainViewController;... 你需要的任何东西。并为每个创建 setter 和 getter。对于保留部分,您可能并不真的需要保留这些对象。如果你这样做,你必须明确释放它们(你会忘记)不要将容器导入头文件。在实践中,如果不只使用链接,它可能会产生令人讨厌的错误。要传递自定义对象的链接,如“AppNameViewController”,您需要导入其标题。而是写@class AppNameViewController

以上是关于如何从 appdelegate 访问 uitablviews 选定项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 appdelegate 访问 uitablviews 选定项目?

如何从 appDelegate 访问每个 ViewController?

从AppDelegate中访问NavigationController指向的初始视图

Swift:如何通过快速操作从 AppDelegate 访问某个 TabBar 选项卡?

如果它在 TabBarController 中,如何从 AppDelegate 访问 ViewController 的属性?

如何从 AppDelegate 访问符合 App 协议的 Swift 结构 [重复]