【发布时间】:2013-12-11 01:20:32
【问题描述】:
我有一个 UITableView,它具有固定数量的部分,但是每个部分中的行数可能会因服务器结果而异。
我想实现一个选择轮来“跳转”到每个部分。这是我在 UITableViewController 中的 UIPickerView 委托方法:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return 5;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [self.pickerArray objectAtIndex:row];
}
ViewDidLoad中初始化的“pickerArray”:
self.pickerArray = [[NSArray alloc]initWithObjects:@"Watching", @"Completed", @"On Hold", @"Dropped", @"Planned", nil];
这是我的 didSelectRow 方法:
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
[self.tableView scrollToRowAtIndexPath:[self.pickerArray objectAtIndex:row] atScrollPosition:UITableViewScrollPositionNone animated:YES];
}
我注意到没有“scrollTo*section*AtIndexPath”方法,这会很有帮助。 Apple 的文档对“indexpath”参数这么说:
indexPath
An index path that identifies a row in the table view by its row index and its section index.
调用方法(在选择器中选择一些东西)会抛出这个错误:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSCFConstantString section]:无法识别的选择器发送到实例 0x4bdb8'
知道我应该做什么吗?
【问题讨论】:
标签: objective-c uitableview uipickerview