run*_*mad 14 iphone uitableview
我有一个带有几个数据源的UITableView.这是因为,我需要使用UISegmentedControl切换数据,如果我将它们添加为子视图,我就不能使用statusBar向上滚动等.
首先,我显示一个登录屏幕:
self.tableView.dataSource = loginTableView;
self.tableView.delegate = loginTableView;
[self.tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
然后,一旦用户登录,我执行以下操作以更改为索引:segmentedControler的1,这是他们的配置文件:
self.tableView.dataSource = profileTableView;
self.tableView.delegate = profileTableView;
[self.tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
但是,表视图更新,但两个dataSource之间有点混合.一些文本已经改变,一些是重叠的,而一些文本完全缺失.
有没有其他方法我应该更改UITableView的dataSource?
谢谢
我有同样的问题.我的解决方案是使tableView隐藏,更改它的源代码,重新加载数据并使tableView再次可见.
C#(MonoTouch)中的示例:
tableView.Hidden = true;
tableView.Source = newTableViewSource;
tableView.ReloadData();
tableView.Hidden = false;
Run Code Online (Sandbox Code Playgroud)
从您发布的代码中不确定为什么会发生这种情况。
不要更改委托和数据源,而是交换任何 ivar 代表正在显示的数据:
- (NSArray*)tableData{
if(showingLogin)
return self.loginData;
return self.profileData;
}
Run Code Online (Sandbox Code Playgroud)
现在你只有 1 个 UITableViewController 实例,但有一个 BOOL 告诉你要使用哪个数据源。
| 归档时间: |
|
| 查看次数: |
10693 次 |
| 最近记录: |