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

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

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

【问题讨论】:

    标签: ios uitableview uiapplicationdelegate


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多