Objective c iOS目标C-指向viewDidLoad上接口控件的指针

Objective c iOS目标C-指向viewDidLoad上接口控件的指针,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,不幸的是,我是ObjC的新手 我在底部创建了一个列表和工具栏,有两个按钮 第一个按钮会刷新列表, 当您点击列表项时,第二个选项应处于“启用”状态,单击该选项将执行其他工作。这要求我在开始时禁用此按钮,但在didSelectRowAtIndexPath上启用 我想获取一个指向viewDidLoad方法上第二个按钮的指针,以供以后使用。 像这样的东西太好了: UIBarButtonItem* m_pButtonA = (UIBarButtonItem*) some_magic_function_to

不幸的是,我是ObjC的新手

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

第一个按钮会刷新列表, 当您点击列表项时,第二个选项应处于“启用”状态,单击该选项将执行其他工作。这要求我在开始时禁用此按钮,但在didSelectRowAtIndexPath上启用

我想获取一个指向viewDidLoad方法上第二个按钮的指针,以供以后使用。 像这样的东西太好了:

UIBarButtonItem* m_pButtonA = (UIBarButtonItem*) some_magic_function_to_call;
UIBarButtonItem* m_pButtonB = (UIBarButtonItem*) some_magic_function_to_call;
因此,我可以在以后需要时调用控制方法

[m_pButtonRefresh method...]

这可能吗?谢谢你的意见。

听起来你好像来自Android背景?你应该阅读关于插座的内容,这与你正在寻找的内容相当


请参阅苹果的备忘单,如果您需要,它会链接到更全面的文档。

听起来您好像来自Android背景?你应该阅读关于插座的内容,这与你正在寻找的内容相当


请参阅Apple的备忘单,如果需要,它会链接到更全面的文档。

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

@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonA;
@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonB;
我建议使用更具描述性的名称

然后,在Interface Builder中,您可以将这些属性设置为每个视图的参考输出,从little+拖动到IB左侧栏中的视图控件,并选择适当的属性

然后,您将能够使用self.m_pButtonA代码访问这些项目。您不需要手动创建对它们的引用,因为代码将自动生成它们


这有点类似于将GUI事件连接到视图控制器中的方法时使用的方法,这些方法将使用标记为IBAction类型的方法,这些方法在引发这些事件时自动触发。IBOutlet和IBAction都只是界面生成器的小提示,IBAction实际上只是void的另一个名称。

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

@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonA;
@property (nonatomic, weak) IBOutlet UIBarButtonItem* m_pButtonB;
我建议使用更具描述性的名称

然后,在Interface Builder中,您可以将这些属性设置为每个视图的参考输出,从little+拖动到IB左侧栏中的视图控件,并选择适当的属性

然后,您将能够使用self.m_pButtonA代码访问这些项目。您不需要手动创建对它们的引用,因为代码将自动生成它们


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

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

长话短说:

只需给按钮添加标签,并使用标签值访问按钮

UIButton *btn = (UIButton*)[self.view viewWithTag:1];
[btn setHidden:YES];

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

长话短说:

只需给按钮添加标签,并使用标签值访问按钮

UIButton *btn = (UIButton*)[self.view viewWithTag:1];
[btn setHidden:YES];

我更像C++的OpenGL后台,其中GUI控件是由调用“NeW”而返回的,指向一个控件的指针,您可以稍后使用它,比如PcReal->…方法。或者您只需调用GuimaGeer-> GETSCONBIDIDCONTURIDID>方法…我更像C++的OpenGL后台,其中GUI控件是由调用“NeW”而返回的,指向一个控件的指针,您可以稍后使用它,如PcReal->…方法。或者您只需调用GuiManager->GetControlByIDCONTROL\u ID->Method……这不是一个聪明的方法。检查乔纳森和基特桑的答案。这不是一个聪明的方法。检查Jonathan和Kitsune的答案。