0

我搜索了一些类似的问题,比如这个问题需要使用分段控制显示表格的方法吗?

解决方案是使用单个 tableview

但我认为我的问题有点不同

因为视图会有分段控制,有两个选择:“DHCP”和“手动”

当我按下“DHCP”时,在分段控制器下会有一个分组表

此表格视图不可编辑,每行仅显示 3 项(IP 地址、掩码、路由器)

但是如果按下“手动”,表格视图将变为可编辑

只能输入第 1 行" IP Address : 169.95.192.1",第 2 行" Subnet mask 255.255.255.0"...

所以我的问题是

<1>如何使用分段控制来切换两个不同的表?

<2>如何创建可编辑的tableview?

非常感谢您阅读并回答这个问题。

4

1 回答 1

0

对......好吧 - 你需要有一个全球性的,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];
}

希望这有所帮助 - 尽管它相当模糊。:)

于 2010-09-24T09:01:15.213 回答