我的UIPickerView有问题.我在EU AP和NA中有3个值.当我启动应用程序欧盟似乎被选中但是当我做一个NSLog(@"%@", [regions objectAtIndex:row]);我只回来时(null),现在当我触摸UIPickerView时,选择了EU值并且我"EU"从NSLog返回.
我的问题是:
当用户仅启动应用程序并且什么都不触摸时,如何定义所选的默认值(不仅是标签).
编辑:这是我获取所选项目的代码:
#pragma mark -
#pragma mark PickerView DataSource
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
return [regions count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component
{
return [regions objectAtIndex:row];
}
#pragma mark -
#pragma mark PickerView Delegate
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
inComponent:(NSInteger)component
{
selectedRegion = [[NSString alloc] initWithFormat:
@"%@", [regions objectAtIndex:row]];
NSLog(@"%@", selectedRegion);
}
Run Code Online (Sandbox Code Playgroud) 我在为 UIPicker 设置初始值时遇到问题。我有: UIPicker 在我的故事板中。连接到 TableViewController(我有静态表)类作为 IBOutlet:
class SettingsTableViewController: UITableViewController, UIPickerViewDelegate, UIPickerViewDataSource {
//Variables
let pricePerHour: Float = 0
let defaults = UserDefaults.standard
let currencies = ["USD", "RUR", "UAH", "BYN", "NIS"]
//IBOutlets
@IBOutlet weak var isTimeCafeSwitch: UISwitch!
@IBOutlet weak var pricePerHourTextField: UITextField!
@IBOutlet var currencyPicker: UIPickerView!
Run Code Online (Sandbox Code Playgroud)
我用这个答案作为设置初始值的例子。但是我收到 NSRangeException 是因为我想我正在尝试在 UI 选择器完全初始化之前为其设置值。我在我的代码中添加了一些打印来显示问题:
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
print("Picker view initialized - getting number of …Run Code Online (Sandbox Code Playgroud)