在PopOverController的帮助下填充表 - 目标C.

时间:2012-06-26 10:03:35

标签: iphone objective-c ios xcode ipad

我正在使用UIButton,点击它我想在NSMutableArray的{​​{1}}的帮助下显示我UITableView中的内容,即我想要弹出一个UIPopOverController,其单元格显示我UITableView的内容。

我使用以下代码行:

NSMutableArray

我的UITableViewController *table= [[UITableViewController alloc]init]; table.delegate = self; UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:table]; self.popoverController = popover; popoverController.delegate = self; NSString *hDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSString *hFilePath = [hisDir stringByAppendingPathComponent:@"hhhh.txt"]; NSArray *array = [NSArray arrayWithContentsOfFile:hFilePath ]; NSMutableArray *kkkk = [[NSMutableArray alloc] init]; for (NSDictionary *dict in array) { [kkkk addObjectsFromArray:[dict allKeys]]; } table = [[UIImageView alloc] initWithFrame:[window bounds]]; // Set up the image view and add it to the view but make it hidden [window addSubview:table]; table.hidden = YES; [window makeKeyAndVisible]; 按下时,我无法弹出UITableView。任何人都可以帮我解决一下吗?

3 个答案:

答案 0 :(得分:1)

UITableView中显示UIPopOverController的一种方法是创建一个新的UIViewController类。并在initWithContentViewController的{​​{1}}方法中调用它。

1。创建新的UIPopOverControllerUIViewController课程。创建它的实例。

2。使用UITableViewController initWithContentViewController方法中的实例。

3. 提及它应该“弹出”

例如UIPopOverController操作:

Button

您似乎想要从-(IBAction)yourButtonAction:(id)sender { YourNewViewController*newVC=[[YourNewViewController alloc]init]; UIPopoverController*somePopOver=[[UIPopoverController alloc]initWithContentViewController:catergoryVC]; //Tell which view controller should be shown [somePopOver setPopoverContentSize:CGSizeMake(200, 200)]; // set content size of popover [somePopOver presentPopoverFromRect:yourButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; //From where it should "pop" } 呈现它而不是UIBarButtonItem使用presentPopoverFromRect

presentPopoverFromBarButtonItem

答案 1 :(得分:1)

如果要在按下按钮时显示弹出按钮,则首先在viewcontroller中添加按钮,按如下方式显示该视图控制器: 在app delegate中写代码:

MyViewController *viewController = [[MyViewController alloc] init];
[self.window addSubView:viewController.view];

在MyViewController中添加按钮并为该按钮displayPopup提供目标,如下所示:

-(void)displayPopup:(id)sender
{
    UITableViewController *tblViewPopover = [[UITableViewController alloc] init];
    tblViewPopover.tableView.delegate = self;
    tblViewPopover.tableView.dataSource = self;
    tblViewPopover.tableView.backgroundColor = [UIColor whiteColor];
    tblViewPopover.tableView.separatorStyle= UITableViewCellSeparatorStyleSingleLine;

    float theWidth = 280;
    tblViewPopover.contentSizeForViewInPopover = CGSizeMake(theWidth,200);

    if(m_popOvrController){
        [m_popOvrController dismissPopoverAnimated:NO];
        [m_popOvrController release];
        m_popOvrController=nil;
    }    
    m_popOvrController = [[UIPopoverController alloc] initWithContentViewController:tblViewPopover];
    [tblViewPopover release];

        [m_popOvrController presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

}

您可以使用tableview委托方法在tableview中显示数据。

答案 2 :(得分:0)

我认为,UIPopoverViewController是使用UIViewController初始化的,在这里你使用的是UIView(UITableView)。

您可以尝试使用UITableViewController吗?

此外,如果使用代码创建它时根据计划不能正常工作,请尝试明确使用XIB。

这应该有所帮助。