我正在编写一个模拟 iPad 主/细节布局的项目。所以我有一个masterView(UITableView)、一个detailView(UICollectionView)、一个全局导航栏和一个TabBar。选项卡栏充满了我需要从中选择的一些类别,并且根据所选的 tabbaritem 填充主视图。
在横向模式下,当同时显示主视图和详细视图时,一切正常。在纵向模式下,我的主视图是隐藏的,我有一个按钮可以打开一个弹出控制器,里面有我的主视图。问题是这个弹出窗口似乎没有显示对 masterview 内容所做的更改
MasterView 是一个 UITableViewController。我已经正确实现了委托和数据源方法。
这是打开/关闭弹出框的代码
if(myPopIsVisible)
{
myPop = [[UIPopoverController alloc]initWithContentViewController:myMasterView];
[myPop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
myPopIsVisible = YES;
}
else
{
[myPop dismissPopoverAnimated:YES];
myPopIsVisible = NO;
}
检查调试它让我了解 myMasterView 的正确内容(行数和内容),但它只显示应用程序加载的第一个。
我正在使用ARC ...
这是 myMasterView 类的实现
@implementation myMasterView{
NSArray *cellTitles;
NSArray *cellIco;
NSArray *cellTag;
}
- (void) setData:(NSArray *)titles :(NSArray *)icos :(NSArray *)tags
{
cellTitles = titles;
cellIco = icos;
cellTag = tags;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if(cell == nil){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
// Configure the cell...
cell.textLabel.text = [cellTitles objectAtIndex:indexPath.row];
cell.tag = [[cellTag objectAtIndex:indexPath.row] integerValue];
#warning icona non impostata
// cell.imageView.image = [cellIco objectAtIndex:indexPath.row];
}
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [cellTitles count];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(isPopover)
{
isPopover = NO;
[master dismissPopoverController];
}
}