0

我打开一个包含表格视图的 PopOverview。它工作正常但是我的单元格还包含当我在 popOver 中打开表格视图时在表格视图单元格中看不到的详细文本。

我的代码如下:

-(IBAction)btnTableMenu_TouchUpInside:(id)sender{

   ListView *popUp=[[ListView alloc] initWithNibName:@"ListView" bundle:nil];



popoverController = [[UIPopoverController alloc]initWithContentViewController:popUp];
popoverController.delegate =self;

[popoverController setPopoverContentSize:CGSizeMake(300, 700)];
[popoverController presentPopoverFromRect:CGRectMake(150,25,20,50) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];


} 

我该如何解决这个?

4

3 回答 3

0

要查看详细的文本标签,您需要使用 UITableViewCellStyleSubtitle 样式创建单元格;

例如 :

 - (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell * cell = nil;

cell = [_tableView dequeueReusableCellWithIdentifier:kTableCellIdentifier];
    if(cell==nil)
{
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kTableCellIdentifier] autorelease];
    }

// configure cell
    cell.textLabel.text = "text label text";
    cell.detailTextLabel.text = "detailed text label text";

return cell;
}
于 2013-01-22T09:40:31.390 回答
0

试试这个:

popOverController在您的视图所在的类中添加观察者

你的popOverController

你的PopOverControlle.m

-(void)viewdidLoad{

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(removePopover:) name:@"hidePopOver" object:nil];

}
-(void)removePopover:(NSNotification *)notification{
   [yourPopOver  dismissPopoverAnimated:YES];
}

你的TableViewController.m

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [[NSNotificationCenter defaultCenter]postNotificationName:@"hidePopOver" object:nil]; 

}
于 2013-01-17T11:56:35.193 回答
-1

见user167 ..你只需要创建新的,UITableViewcontroller例如DropDwnLevel1TableViewController.h,正确的。DropDwnLevel1TableViewController.mxib

现在在DropDwnLevel1TableViewControllerCreate IBOutlate 中设置UITableVIew一个 UITableView 来nib连接IBOUTLATE和设置DelegatedataSource

现在您可以将创建TableViewController的添加设置到您UIPopoverViewcontroller喜欢的以下方法中:-

-(IBAction)btnTableMenu_TouchUpInside:(id)sender{

  DropDwnLevel1TableViewController *firstViewCtrl = [[DropDwnLevel1TableViewController alloc] init];
        firstViewCtrl.title=@"My tableView";

        UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:firstViewCtrl];

        [firstViewCtrl contentSizeForViewInPopover];

        myPopOVer = [[UIPopoverController alloc] initWithContentViewController:navbar];
        [navbar release];

        myPopOVer.delegate = self;
        myPopOVer.popoverContentSize =CGSizeMake(250,200);

        [myPopOVer presentPopoverFromRect:sender.frame inView:sender.superview permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];


}

FOR 关闭 popOver

在你声明popOverViewcontroller .m文件ViewDidLoad方法的类中

- (void)viewDidLoad
{
     // Hear creating NSNotificationCenter for dismiss popover

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(DismissPopOver:)
                                                 name:@"Dismiss"
                                               object:nil];

  [super viewDidLoad];

}

-(void)DismissPopOver:(NSNotification *)notification {

    [yourPopOVer dismissPopoverAnimated:YES];

}

现在在DropDwnLevel1TableViewController.m didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
          // hear call NSNotificationCenter who creating in main class
         [[NSNotificationCenter defaultCenter] postNotificationName:@"Dismiss" object:self];

}
于 2013-01-17T11:28:33.853 回答