我有一个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都已初始化。 我怎样才能切换?
答案 0 :(得分:0)
如何创建两个表视图?我建议为它们创建实例变量,并在必要时保留它们。
self.gameTableView = ... // gameTableView is a retain property
self.appsTableView = ... // appsTableView is a retain property
然后换班:
self.tableView = gameTableView;
我认为你不需要从超级视图中删除原始表视图作为self。语法应该为你做。我对此并不是100%肯定,我会试验并回复你。
编辑:直接分配应该是安全的(无需从超级视图中删除)。