gpt4 book ai didi

ios - 根据标签更改特定命令按钮的标题

转载 作者:行者123 更新时间:2023-11-28 20:07:59 26 4
gpt4 key购买 nike

我对 Xcode 比较陌生,需要一些帮助。因此,我的 View 有 2 个按钮(它有更多按钮,但为了简单起见,假设是 2 个),它们都连接到一个 IBAction。当按下每个按钮时,Picker 会显示加载了一个数组,具体取决于按下的是哪个按钮。我希望按钮的标题与用户在 PickerView 中选择的内容相匹配。

我知道我必须修改 pickerView:didSelectRow 方法中的一些代码,但我不知道该怎么做。它现在的工作方式是,无论我单击哪个按钮(我应该注意加载了正确的数组,以便该部分正常工作),带有标签“0”的按钮都会被修改为所选选择器行的内容。所以我需要修改 SELECTED 标签上的按钮。

我的头文件是:

@interface XYZSecondViewController : UIViewController <UITextFieldDelegate,   UIPickerViewDataSource, UIPickerViewDelegate>

@property (strong, nonatomic) IBOutlet UIPickerView *myPicker;
@property (strong, nonatomic) IBOutlet UIButton *myButton;

- (IBAction)myButton:(id)sender;

@end

我的实现文件:

#import "XYZSecondViewController.h"
@interface XYZSecondViewController ()
@property (strong,nonatomic) NSArray *myArray1;
@property (strong,nonatomic) NSArray *myArray2;
@property (strong,nonatomic) NSArray *chosenArray;
@end

@implementation XYZSecondViewController
@synthesize myButton, myPicker;

- (IBAction)myButton:(id)sender
{
switch ([sender tag])
{
case 0:
self.chosenArray = self.myArray1;
break;
case 1:
self.chosenArray = self.myArray2;
break;
}
[self.myPicker reloadAllComponents];
}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [chosenArray objectAtIndex:row];
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
[myButton setTitle:[chosenArray objectAtIndex:row] forState:UIControlStateNormal];
}

最佳答案

您可以跟踪当前点击的按钮的标签。

像这样:

@property (nonatomic) NSInteger tagLastTappedButton;

...

- (IBAction)myButton:(id)sender
{
tagLastTappedButton = sender.tag;
...
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
UIButton *buttonTapped = (UIButton *)[self.view viewWithTag:tagLastTappedButton];
[buttonTapped setTitle:[chosenArray objectAtIndex:row] forState:UIControlStateNormal];
}

关于ios - 根据标签更改特定命令按钮的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351436/

26 4 0