我正在制作一个带有 4 个 UIImageView 和 4 个 UIButtons 的应用程序。每个按钮都连接到一个 UIAlerView,它有一个打开照片库的选项,因此可以更改 UIImageView。我的问题是我不知道如何告诉 UIAlertView 按下了哪个 UIButton。
我怎样才能写出哪个按钮被按下了?
我正在制作一个带有 4 个 UIImageView 和 4 个 UIButtons 的应用程序。每个按钮都连接到一个 UIAlerView,它有一个打开照片库的选项,因此可以更改 UIImageView。我的问题是我不知道如何告诉 UIAlertView 按下了哪个 UIButton。
我怎样才能写出哪个按钮被按下了?
如果您正在使用界面构建器或将它们添加不同的目标,则可以将所有按钮连接到另一种方法。它会更容易但不是非常可扩展,或者它不会与动态数量的按钮兼容。
使用以下方法将相同的目标和选择器添加到所有按钮:
[_yourButton1 addTarget:self
action:@selector(aButtonTapped:)
forControlEvents:UIControlEventTouchDown];
并在 aButton tapped 方法中检查哪个按钮被点击并采取相应措施:
- (void) aButtonTapped:(id) sender{
if ( sender == _yourButton2) //Do sth
}
在这两种情况下,使用界面生成器都会更容易。
有很多方法可以做。
如果您记录发件人,则在该操作中,它将显示按下了哪个按钮。
-(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
*/
}
第二种方式是通过发布和观察通知。
您可以为按钮添加标签。