1

不幸的是,我是 ObjC 的新手。

我在底部创建了一个列表和工具栏,有两个按钮。

在此处输入图像描述

第一个按钮刷新列表,当您点击列表项时,第二个按钮应该是“启用”的,单击它会执行额外的工作。这需要我在开始时禁用此按钮,但在 didSelectRowAtIndexPath 上启用。

我想获取指向 viewDidLoad 方法的第二个按钮的指针,以供以后使用。像这样的东西会很棒:

UIBarButtonItem* m_pButtonA = (UIBarButtonItem*) some_magic_function_to_call;
UIBarButtonItem* m_pButtonB = (UIBarButtonItem*) some_magic_function_to_call;

所以我以后可以在需要时调用控制方法。

[m_pButtonRefresh method...]

这可能吗 ?感谢您的任何意见。

4

3 回答 3

3

在您的自定义视图控制器类中,创建一个 IBOutlet 属性,如下所示:

@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonA;
@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonB;

(我建议使用更具描述性的名称)

然后,在 Interface Builder 中,您可以将这些属性设置为每个视图的参考插座(从小 (+) 拖动到 IB 左侧边栏中的视图控件,然后选择适当的属性)。

然后,您将能够使用类似self.m_pButtonA. 您不需要手动创建对它们的引用,因为代码会自动生成它们。

这有点类似于您在将 GUI 事件连接到视图控制器中的方法时使用的方法(这些方法将使用标有 IBAction 类型的方法),这些方法在引发这些事件时会自动触发。IBOutlet 和 IBAction 都只是对 Interface Builder 的一点提示(IBAction 实际上只是 void 的另一个名称)。

于 2013-01-06T18:36:31.410 回答
1

听起来你来自 Android 背景?您应该阅读outlets,相当于您正在寻找的内容。

请参阅 Apple 的备忘单Cocoa Application Competencies for iOS,如果您需要,它会链接到更详尽的文档。

于 2013-01-06T18:26:09.993 回答
0

好的,我在这里找到了答案

从 viewDidLoad 获取 UIButton 引用

长话短说:

只需为您的按钮添加标签并使用标签值访问您的按钮。

UIButton *btn = (UIButton*)[self.view viewWithTag:1];
[btn setHidden:YES];
于 2013-01-06T18:37:48.457 回答