如何从 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 的属性?