2012-11-29 121 views
-3

我用4个UIImageView和4个UIButton制作应用程序。每个按钮都连接到一个UIAlerView,该UIAlerView具有打开光盘库的选项,因此可以更改UIImageView。 我的问题是,我不知道如何告诉UIAlertView哪个UIButton被按下。按下哪个按钮

如何写出哪个按钮被按下?

+0

在网上有足够的教程涵盖了这个主题,通过他们的工作,如果问题仍然存在,再来这里。 – jimpic

+0

http://stackoverflow.com/questions/13575037/what-are-resources-for-learning-objective-c/13577666#13577666 –

+0

[你有什么尝试?](http://whathaveyoutried.com) – thegrinner

回答

1
  1. 可以将所有按键连接到另一种方法,如果您使用的界面生成器或将其添加不同的目标。它会更容易但不可扩展,或者不会与动态数量的按钮兼容。

  2. 使用相同的目标&选择添加到所有的按钮:

    [_yourButton1 addTarget:self 
          action:@selector(aButtonTapped:) 
    forControlEvents:UIControlEventTouchDown]; 
    

    和内部A按钮抽头哪个按钮被窃听方法检查并据此采取行动:

    - (void) aButtonTapped:(id) sender{ 
    
        if (sender == _yourButton2) //Do sth 
    } 
    

使用接口构建器在这两种情况下都会更容易。

+0

我应该在哪里放置它们? – JimmyYXA

+0

第二个是viewController的方法,第一个块可以在按钮初始化后随时放置,viewDidLoad应该足够了。但我认为你应该多提高一点。 –

+0

但部分_yourButton1,这应该被替换为我的按钮吧?但是我应该写出按钮的出口还是动作?该动作不会出现 – JimmyYXA

1

有很多方法可以做。

在操作中,如果您记录发件人,它将显示按下哪个按钮。

-(IBAction) myFirstButton: (id) sender { 
    NSLog(@"User clicked %@", sender); 
    // Do something here with the variable 'sender' 
    /*if ([[sender title] isEqualToString:@"Button 1"]) { 
     //do whatever you want 
    */ 
} 

第二种方法是通过发布和观察通知。

+1

第三种方式就是用谷歌;) – jimpic

+0

我应该让第一,第二,第三和第四矿......大声笑 –

+0

如果你满意答案..放弃,接受等。或者用其他疑问拍我们:p –

1

您可以添加标签到您的按钮。