从弹出控制器ios获取按钮控制

Posted

技术标签:

【中文标题】从弹出控制器ios获取按钮控制【英文标题】:Getting the button control from the pop over controller ios 【发布时间】:2012-11-01 06:02:00 【问题描述】:

我的 ios 应用在单个视图控制器上有 13 个按钮。单击它们中的每一个都会打开一个popovercontroller。不是一下子。苹果规则,我知道。您单击您选择的一个,然后将其关闭并为其他按钮执行此操作并继续。现在我有一个代表告诉我我在弹出窗口上选择了什么选项。像 Button1 popovervalues-( 1,2,3) Button2 popovervalues- (a,b,c)。现在委托中的方法告诉我选择了 1 或选择了 a。但它没有告诉我 Button1 被点击或 button2。我想知道如何获取按钮控件名称/或现在仅获取按钮就足够了。是否有任何属性可以告诉我单击了哪个按钮?我看到了 popovercontroller 的 contentviewcontroller、inputview、navigationcontroller 等。但都没有帮助我找到被点击的按钮。我想知道,因为如果在 Button1 的弹出窗口中选择了选项 1,那么我必须禁用 Button10。因此,知道选择了哪个按钮的哪个选项将简化用户选择(实际上是一个要求)。如果需要更多信息,请告诉我。谢谢..

【问题讨论】:

【参考方案1】:

您是通过界面生成器连接按钮吗? 如果是这样,那么它应该通过 IBAction 方法连接。

- (IBAction)someAction:(id)sender 
   UIButton *buttonPressed = (UIButton *)sender;
   //Now you have the button you have pressed

如果您以编程方式制作按钮并将目标添加到其中 注意选择器位中 someAction 后的冒号

[myButton addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventTouchDragInside];

您可以使用与之前相同的方法与 IBAction,或者您可以制作自己的 void 方法,无论哪种方式,发送者都是按钮,只需投射它然后使用它。

希望这会有所帮助。

【讨论】:

@mashdup.Thanks.我应该让自己更清楚。我的设置是这样的 -(IBAction)btnBCoverClick:(UIButton *)sender NSArray *tempArray =[self GetChildCodes : S_B_C]; [self ShowPopOver : tempArray ButtonPass:sender];现在我有一个委托最终会调用这个方法 -(void)optionSelected:(NSString *)option NSLog(@"the value selected is %@",option); .Inside this method(由委托调用)我想知道单击了哪个按钮。我还有 12 个按钮操作。如果需要更多信息,请告诉我。谢谢。 为什么不把按钮传回去,你把它传给了popover,为什么不把它传回optionselected:(nsstring*)option withButton:(UIButton*)passedButton ...【参考方案2】:

使用按钮的标签值。设置一个数字并在 action 方法中检查它:

- (IBAction)buttonAction:(id)sender 
   UIButton *buttonPressed = (UIButton *)sender;
   if(buttonPressed.tag == 1) 
        //Do this
   

【讨论】:

@Dancreek.Thanks.我应该让自己更清楚。我的设置是这样的 -(IBAction)btnBCoverClick:(UIButton *)sender NSArray *tempArray =[self GetChildCodes : S_B_C]; [self ShowPopOver : tempArray ButtonPass:sender];现在我有一个委托最终会调用这个方法 -(void)optionSelected:(NSString *)option NSLog(@"the value selected is %@",option); .Inside this method(由委托调用)我想知道单击了哪个按钮。我还有 12 个按钮操作。如果需要更多信息,请告诉我。谢谢。

以上是关于从弹出控制器ios获取按钮控制的主要内容,如果未能解决你的问题,请参考以下文章

从弹出控制器推送视图控制器

如何从弹出视图控制器获取数据到自定义表格视图单元格?

从弹出框控制器调用模态视图的方法

从弹出的视图控制器传递数据

从弹出视图控制器 Swift 中转接

从弹出窗口呈现视图