我有一個帶有UITableViewDelegate的UITableView
。UITableViewCell中的UIPickerView不加載數據
其中一種CellType由標籤和UITextField
組成。
我已將UITextField
的inputView
設置爲UIPickerView
。
的UIPickerView及其委託中的UITableViewDelegate
的cellForRowAtIndexPath
功能構造當我顯示我的表,創建tablerows,當我點擊的UITextField,一個選擇器彈出然而拾取器非沒有顯示填充的和我放入代表的日誌。
到目前爲止,我已經嘗試了一些東西,比如添加額外的刷新,但目前爲止沒有結果。
由於日誌沒有顯示我懷疑有委託和數據源的引用有問題嗎? PickerView的實例是否被銷燬?也許我忘了實現我沒有看到的方法?
任何幫助理解/修復這個讚賞!
截圖:
在我的代碼,這看起來是這樣的:
TableViewDelegate.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
cell = [self createListViewCell:indexPath tableView:tableView];
return cell;
}
- (UITableViewCell *) createListViewCell:(NSIndexPath *)indexPath tableView:(UITableView *)tableView {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:LIST_CELL_ID];
ListTableCell *listTableCell = (ListTableCell *) cell;
List *list = [listsData objectAtIndex:indexPath.row];
//Set List Label
listTableCell.listLabel.text = list.name;
//Create Value picker
UIPickerView *picker = [[UIPickerView alloc]init];
//Create Delegate for picker
ListPickerViewDelegate *pickerDelegate = [[ListPickerViewDelegate alloc]init];
pickerDelegate.data=list.itemData;
picker.dataSource = pickerDelegate;
picker.delegate = pickerDelegate;
listTableCell.listTextValue.inputView = picker;
[picker reloadAllComponents];
return cell;
}
而且我ListPickerViewDelegate是這樣的:
ListPickerViewDelegate.h
#import <UIKit/UIKit.h>
@interface ListPickerViewDelegate:NSObject <UIPickerViewDelegate,UIPickerViewDataSource>
@property (nonatomic) NSArray *data;
@property (nonatomic) UITextField *textField;
@end
ListPickerViewDelegate.m
#import "ListPickerViewDelegate.h"
#import "DataItem.h"
@implementation TagListPickerViewDelegate
@synthesize data;
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
DataItem *thisDataItem = [data objectAtIndex:row];
NSLog(@"Value for row is %@", thisDataItem.name); //Log not showing
return DataItem.name;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
NSLog(@"Count for data is %li", (unsigned long)[data count]); //Log not showing
return [data count];
}
@end
你的選擇器的y座標和框架在哪裏? –
Picker是顯示在屏幕截圖屏幕底部的人。我是否需要爲此提供額外的參考? – RWIL
然後在哪裏完成?我試圖達到什麼解釋在這裏:http://stackoverflow.com/a/20438343/3708094 – RWIL