在UITableViewController中切换Multi UITableViews

时间:2011-09-25 20:17:07

标签: iphone objective-c ios three20

我有一个UITableViewController包含两个UITableViews appsTableView和gameTableView,首先我设置:

self.tableView = appsTableView;
    [self.view addSubview:self.tableView];

然后当我点击切换页面按钮进行页面切换时:

-(void) switchPage:(id) sender{


    switch([sender selectedSegmentIndex]){
        case 0: 

            gameTableView = self.tableView;
            self.tableView = appsTableView;  // crash here

           [self.view addSubview:self.tableView];
            break;
        case 1: 

            appsTableView = self.tableView;
            [self.tableView removeAllSubviews];
            self.tableView.removeFromSuperview;

            self.tableView = gameTableView;    //crash here
            [self.view addSubview:self.tableView];

            break;   
        default: sql = nil;
    }

}

appsTableView和gameTableView都已初始化。 我怎样才能切换?

1 个答案:

答案 0 :(得分:0)

如何创建两个表视图?我建议为它们创建实例变量,并在必要时保留它们。

self.gameTableView = ... // gameTableView is a retain property
self.appsTableView = ... // appsTableView is a retain property

然后换班:

self.tableView = gameTableView;

我认为你不需要从超级视图中删除原始表视图作为self。语法应该为你做。我对此并不是100%肯定,我会试验并回复你。

编辑:直接分配应该是安全的(无需从超级视图中删除)。