对......好吧 - 你需要有一个全球性的,BOOL
例如BOOL isManual;
现在在你的每个 UITableViewDatasource 方法中你需要检查这个布尔值:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
if(isManual){
// set cell content for manual
}
else{
//set cell content for DCHP
}
return cell;
}
// this function allows you to set a table view cell as editable
// look up UITableView delegate methods for more :)
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if(isManual){
return YES;
}
else{
return NO;
}
}
和类似的。
然后在您想要更改 isManual 并reloadData
在您的桌子上的分段控制回调方法中:
- (void)segmentedControlChanged:(id)selector {
UISegmentedControl *control = selector;
int selected = [control selectedSegmentIndex];
if(selected == 0){
isManual == NO;
}
else{
isManual == YES;
}
[self.tableView reloadData];
}
希望这有所帮助 - 尽管它相当模糊。:)