UIButton做不同的动作ios

时间:2013-03-21 12:16:13

标签: ios button uibutton action ibaction

我有两个导航按钮(左和右)和两个类别按钮(例如,love.category和otherCategory)。当我选择loveCategory时,我希望我的导航按钮只能从loveCategory显示(在我的情况下是Images),当我按下otherCategory时,导航按钮应该只能从otherCategory显示(图像)(就在我按下左右按钮的时候) )。

如果不清楚,请告诉我。

这是我的代码:

-(IBAction)NavigationBtnTapped:(UIButton*)sender {
UIButton *button=sender;
switch (button.tag) {
    case 1:
        //statements
        break;
    case 2:
        //statements
        break;
    default:
        break;
}

}

-(IBAction)loveCategory {
}
-(IBAction)otherCategory {
}

如何在其他操作中调用操作

-(IBAction)loveCategory 
{ 
  -(IBAction)NavigationBtnTapped:(id)sender
{
// Is it possible to call an action within another action?
}
}

5 个答案:

答案 0 :(得分:1)

将标记1和2添加到按钮并尝试:

    -(IBAction)NavigationBtnTapped:(id)sender {

    switch ([sender tag]) {
        case 1:
            //statements
            break;
        case 2:
            //statements
            break;
        default:
            break;
    }

}

答案 1 :(得分:0)

另一种方式是......

提供UIButton标记

button1.tag = 101;
button2.tag = 102;

两个UIButton都有相同的方法调用 比如,

-(void)buttonTapped:(UIButton *)sender
{
   if(sender.tag == 101)
   {
     // code for loveCategory
   }
   if(sender.tag == 102)
   {
     // code for otherCategory
   }
}

答案 2 :(得分:0)

您可以通过设置标志来执行此操作

,最后选择了哪个类别
int selectedCategory = 0;

-(IBAction)NavigationBtnTapped:(UIButton*)sender {
UIButton *button=sender;
switch (button.tag) {
    case 1:
        //statements
        if(selectedCategory == 0){
           // go left for lovecategory 
        }else{
          // go left for OtherCategory 
        }
        break;
    case 2:
        //statements
       if(selectedCategory == 0){
            // go right for lovecategory 
       }else{
           // go right for OtherCategory 
       }
        break;
    default:
        break;
}

}

-(IBAction)loveCategory {
  selectedCategory = 0;
}
-(IBAction)otherCategory {
   selectedCategory=1;
}

这就是你想要的吗?

用于在另一个操作中调用操作

-(IBAction)loveCategory 
{ 
  [self NavigationBtnTapped:null];
}
-(IBAction)NavigationBtnTapped:(id)sender
{
// Is it possible to call an action within another action?
}

答案 3 :(得分:0)

另一种方法是拥有2个UIButton和2个UIImages,但这不是一个好方法:D

在开始时loveCategory的按钮隐藏= NO并且它的图像隐藏= YES,还有otherCategory的按钮= YES并且其图像隐藏= NO。

当你点击loveCategory的按钮时,loveCategory的按钮隐藏= YES,其图像隐藏= NO,而且其他类别的按钮隐藏= NO和图像隐藏=是

答案 4 :(得分:0)

找到答案!

头文件中的

BOOL isLove,isOther;

在实施文件

- (void)viewDidLoad
{
    isOther=TRUE;
    isLove=FALSE;
}

-(IBAction)NavigationBtnTapped:(UIButton*)sender {
if (isLove) {
// Statement
}
else
{
//statement
}

如有必要,请使用“else if”来检查多个按钮。