我正在製作單一視圖iOS應用程序。我有兩個UIPickerView元素並在for循環中初始化它們,爲每個元素創建一串字符串。我隱藏其中的一個viewDidLoad,因爲我打算在它們之間切換。正在顯示的那個顯示「?」爲每行而不是正確的字符串。在同一個iOS視圖中顯示兩個UIPickerView,但值顯示爲問號
viewcontroller.h低於
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate>
{
IBOutlet NSMutableArray *milesArray;
IBOutlet NSMutableArray *metersArray;
}
@property (weak, nonatomic) IBOutlet UITextField *distanceText;
@property (weak, nonatomic) IBOutlet UISegmentedControl *distanceUnits;
@property (weak, nonatomic) IBOutlet UITextField *timeText;
@property (weak, nonatomic) IBOutlet UILabel *splitLabel;
@property (weak, nonatomic) IBOutlet UITextField *meterText;
@property (weak, nonatomic) IBOutlet UITextField *feetText;
@property (weak, nonatomic) IBOutlet UITextField *inchesText;
@property (strong, nonatomic) IBOutlet UIPickerView *meterPicker;
@property (strong, nonatomic) IBOutlet UIPickerView *milePicker;
- (IBAction)backgroundTap:(id)sender;
- (IBAction)textFieldDidEndEditing:(UITextField *)textField;
@end
viewcontroller.m旁邊
#import "ViewController.h"
#import <math.h>
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
milesArray = [[NSMutableArray alloc] init];
metersArray = [[NSMutableArray alloc] init];
_meterText.text = @"0";
_feetText.text = @"0";
_inchesText.text = @"0";
_distanceText.text = @"0";
_timeText.text = @"00:00:00.00";
_milePicker.hidden = YES;
//set picker data
for(int i = 0; i < 1000; i++)
{
NSString *str = [NSString stringWithFormat:@"%d", (i+1)*100];
[metersArray addObject:str];
NSString *str1 = [NSString stringWithFormat:@"%0.1f", (i+1)*0.1];
[milesArray addObject:str1];
}
self.meterPicker.dataSource = self;
self.milePicker.delegate = self;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)backgroundTap:(id)sender{
[self.view endEditing:(YES)];
}
// The number of columns of data
- (long)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
// The number of rows of data
- (long)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if(pickerView.tag == 6)
{
return metersArray.count;
}
else if(pickerView.tag == 7)
{
return milesArray.count;
}
else
return 0;
}
// The data to return for the row and component (column) that's being passed in
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if(pickerView.tag == 6)
{
return metersArray[row];
}
else if(pickerView.tag == 7)
{
return milesArray[row];
}
else
return @"error";
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
long index = row;
_splitLabel.text = [NSString stringWithFormat: @"%ld", index];
}
@end
我認爲這事做初始化他們當你有兩個而不是一個uipickerview。我可能做錯了。
在此先感謝,我希望一切是相當明確的。
這都沒有解決在選取器視圖中看到問號的問題。 – rmaddy