在我的SplitView应用程序中,我在启动时在TableView中有一些常规数据。当选择TableView中的数据时,我想首先在TableView中显示详细数据,当在那里选择某些内容时,它也应该显示在DetailView中。我的问题涉及第二步:如何更新TableView的数据并避免在选择某些内容时此TableView消失?
答案 0 :(得分:0)
如果您从Apple提供的MasterDetail应用程序开始,默认情况下会执行以下操作
您需要采取的步骤
首先创建另一个DrillDownLevel1ViewController,它是UITableViewController的子类。
在该类中,有两个属性,一个用于数据,一个用于引用DetailViewController。
@property(strong,nonatomic)NSArray *drillDownLevel1Data;
@property(strong,nonatomic)DetailViewController *detailViewController;
在MasterViewController的didSelectRowAtIndexPath中做了这样的事情
DrillDownLevel1ViewController *drillDownLevel1ViewController = [[DrillDownLevel1ViewController alloc] init];
drillDownLevel1ViewController.drillDownLevel1Data=[NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
drillDownLevel1ViewController.detailViewController=self.detailViewController;
[self.navigationController pushViewController:drillDownLevel1ViewController animated:YES];
在DrillDownLevel1ViewController中,您可以正确设置numberOfSections,numberOfRows等
在DrillDownLevel1ViewController的cellForRowAtIndexPath中,设置正确的值
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell==nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
cell.textLabel.text=[drillDownLevel1Data objectAtIndex:indexPath.row];
return cell;
在DrillDownLevel1ViewController的didSelectRowAtIndexPath中
self.detailViewController.detailItem = [drillDownLevel1Data objectAtIndex:indexPath.row];
[self.detailViewController configureView];
右侧的DetailViewController应该现在显示数据。如果不是,那么你可以做一些关于插座是否连接等的调试。
我有一个我建立的简单项目,如果你想我可以通过电子邮件发送给你。