如何根据按下的按钮取消隐藏标记的详细信息披露按钮

Posted

技术标签:

【中文标题】如何根据按下的按钮取消隐藏标记的详细信息披露按钮【英文标题】:How to Unhide tagged detail disclosure button depending on which button was pressed 【发布时间】:2015-04-07 23:39:47 【问题描述】:

在我的视图控制器中,我有 6 个按钮 (IBAction buttonDown(tagged 0 - 5)),以及它们对应的详细信息披露按钮 (UIButton*closureButton(tagged 0 - 5))。

我想知道是否有一种方法可以默认隐藏所有详细信息披露按钮,但是如果按下标记为 0 的按钮,则会显示标记为 0 的详细信息公开按钮等。

这是我目前在 ViewController.m 文件中的代码

    - (void)viewDidLoad
    [super viewDidLoad];

    _stopSound.hidden = YES;



- (IBAction)stopSound:(UIButton *)sender 
    P11AppDelegate* app = [[UIApplication sharedApplication] delegate];
    [app.host stop];

    _stopSound.hidden = YES;



- (IBAction)buttonDown:(UIButton *)sender

    P11AppDelegate* app = [[UIApplication sharedApplication] delegate];
    [app.host start];
    [app playSound:sender.tag];

    _stopSound.hidden = NO;


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    
    UIButton* disclosureButton = sender;
    P11AppDelegate* app = [[UIApplication sharedApplication] delegate];
    app.editIndex = disclosureButton.tag;


@end

【问题讨论】:

【参考方案1】:

在 viewDidLoad 中用以下代码解决:

   //hide info buttons
for (int i = 0; i < self.infoButtons.count; i++)

    UIButton* button = [self.infoButtons objectAtIndexedSubscript:i];
    button.hidden = YES;


当按下按钮时:

//info button reappears when sound button is pressed
for (int i = 0; i < self.infoButtons.count; i++)

    UIButton* button = self.infoButtons[i];
    button.hidden = button.tag == sender.tag ? NO : YES;

【讨论】:

以上是关于如何根据按下的按钮取消隐藏标记的详细信息披露按钮的主要内容,如果未能解决你的问题,请参考以下文章

按下取消按钮时如何重设标记视图的位置?

在 UIButton 上放置一个详细信息披露按钮

突出显示被按下的按钮并取消突出显示未按下的按钮 SWIFT

从详细信息披露按钮 segue 传递对象

在没有自定义单元格的情况下向 uitableview 显示详细信息披露按钮

根据您按下的按钮将信息发送到不同页面的表单