1

我正在编写一个模拟 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];
    }

}
4

0 回答 0